原创 RocketMq整合springBoot的日常使用

       現在使用rocketmq基本上都是搭載spring配合使用的,現在就以springBoot作爲演示。 1.首先先倒入所需依賴包 <dependency> <groupId>com.alibaba.rocketmq<

原创 forkjoin線程框架

    fork英文含義爲叉子也可以理解爲拆分,join英文含義爲加入也可以理解爲彙集,所以forkjoin可以理解爲拆分任務然後將結果匯聚在一起,這種思想和大數據中的MapReduce很像(input --> split --> map

原创 多線程的各種鎖

    在學習多線程的時候,我們經常會聽到可重入鎖/不可重入鎖、公平鎖/非公平鎖、讀寫鎖現在我們就逐一它們的神祕面紗。 Lock包下的層級結構       1.可重入鎖/非重入鎖:大部分jdk提供的都是可重入鎖,如syncronized

原创 MQ初識--Activemq

    目前互聯網分佈式架構的系統基本上離不開消息中間件,也就是此篇博文要講的,那我們就一起來認識一下這位朋友吧。 講到MQ不得不提交異步解耦這個概念,就拿電商下訂單舉例(一般訂單都涉及到短信、物流、郵件等各個流程),下面以圖片爲例子說明

原创 Netty入門之------基於netty實現網絡通信

        從前面幾篇博文中我們已經學習了從BIO到NIO再到Reactor線程模型+NIO實現了客戶端與服務端的一個通信,但這樣寫起代碼來還是比較繁瑣的,而Netty則極大的簡化我們這種網絡通信的開發,它是基於NIO之上的也同時實現

原创 RocketMQ介紹和簡單使用

RocketMq下載安裝 下載網址:http://rocketmq.apache.org/dowloading/releases/ 系統要求64bit Linux、Unix或Mac,JDK版本>=1.8  解壓後其中的目錄文件說明

原创 網絡編程之BIO、NIO

       已經很久沒更新博客了,慚愧。在這之前先講一下面試可能會問到的三次握手與四次揮手,也就是Tcp如何建立連接?        假設A城市往B城市發送信件,先A發到B,B收到,在發給A,在A發給B,建立起初步通信。三次揮手是爲了證

原创 行爲模式之-----觀察者模式

定義:當對象間存在一對多關係時,則使用觀察者模式(Observer Pattern)。比如,當一個對象被修改時,則會自動通知它的依賴對象。 意圖:定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並

原创 pg下載和josn類型的使用

下載客戶端:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads   json和jsonb的區別         postgresql支持兩種json數據

原创 基於多Reactor線程模型實現簡單的服務器demo

        針對上一篇博文,通過selector類確實是可以達到通過一個線程管理多個客戶端連接,類似消息監聽與多路複用的作用,但是依然是存在性能問題的,爲什麼這麼說呢?比如A客戶端發送請求過來服務端接受到了,然後響應請求,但是如果是一

原创 Conditon用法整理

       關鍵字syncronized與wait()和notify()和notifyAll()可以實現等待通知,類ReentrantLock也可以實現同樣的功能,但需要藉助於Condition,這個類可以實現多路通知,也就是說在一個L

原创 行爲模式之-----模版模式

定義:一個抽象類公開定義了執行它的方法的方式/模板。它的子類可以按需要重寫方法實現,但調用將以抽象類中定義的方式進行。這種類型的設計模式屬於行爲型模式。 意圖:定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改

原创 自定義緩存組件 代替 Spring@Cache緩存註解

    在實現上述功能之前先來點基礎的,redis在SpringBoot項目中常規的用法,好對緩存和redis客戶端的使用有一定了解。    1.添加依賴 redis客戶端依賴(連接redis服務端必備 ) <!-- 客戶端依賴二選一

原创 自定義註解+反射+Aop 實現代碼封裝(擴展性強)

問題引入                 首先這篇博文是我在上直播課學習到的,受益匪淺,它教會我們用架構師的思維去解決問題,代碼擴展性強,於是乎記錄下來。首先遇到的是這麼一個問題(簡化版本),就是有兩張表:一張用戶表user表,另外一

原创 Spring中使用kafka

添加依賴 Maven中引用依賴 <!-- kafka --> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-