原创 分佈式專題|都說netty入門很難,那是因爲你沒有看我的文章!

在寫代碼之前,我們先看下netty的線程模型,這比那固定格式的代碼將會更有趣,看完線程模型,你就知道netty寫的那幾段固定代碼的意義了。 線程模型圖 這個線程模型圖裏面大概包含了這幾個組件:bossGroup,workGroup,sel

原创 分佈式專題|Mysql主從複製的三種方式你應該要了解的!

繼續我們前面我們搭建了Mysql主從複製架構,我們今天來介紹主從複製的三種方式,這在面試過程中也是會被經常問到的: 同步複製 同步複製指得是當主庫提交事務後,binlog已經通過dump線程傳到從庫的中繼日誌,主庫需要一直等待從庫的提交確認

原创 分佈式專題|面試官問我瞭解Mysql主從複製原理麼,我能說不會麼?

搭建Mysql主從同步之前,我們先來說他們之間同步的過程與原理: 同步複製過程 獻上一張圖,這張圖詮釋了整個同步過程 主從複製過程: slave節點與主節點進行連接,建立主從關係,並把從哪開始同步,及哪個日誌文件都一併發送到maste

原创 分佈式專題|女朋友突然問我如何使用Docker搭建RabbitMQ集羣並實現高可用?

在女朋友的再三追問下,於是就有了這篇文章!!! 集羣搭建 如果還不會docker的話,可以先自行學習下哦 創建rabbitmq需要的網絡 docker network create rabbtimane 安裝三個rabbitmq組件

原创 分佈式專題|面了一個六年開發,居然不知道怎麼保證消息可靠性?

在系統中使用中間件進行消息傳遞的時候,最頭疼的問題就是消息丟失了,雖然我們知道中間件一般都提供了消息持久化和消息確認重試的機制,但是如果要和業務功能結合起來的話,這些往往是不夠用的,接下來我會和大家分享下,在我接觸過的系統中是如何保證消息可

原创 分佈式專題|如何使用zookeeper實現分佈式鎖 分佈式專題|如何使用zookeeper實現分佈式鎖

分佈式專題|如何使用zookeeper實現分佈式鎖 在分佈式中,避免不了使用分佈式鎖,在前面的專題中,我們已經說過使用Redis實現分佈式鎖,這裏我將給大家演示如何使用zookeeper實現分佈式鎖。 首先,給大家介紹下實現的基本思路,這裏

原创 分佈式專題|面試官常問的zookeeper選舉、消息廣播、崩潰恢復原理,你都知道了麼?

zookeeper選舉過程 我們先介紹幾個主要的參數: zxid:當前節點最新的事務ID,ID值越大,則說明數據越新 serverId:對應每個節點的myid,myid越大在選舉過程中的權重就越大。 epoch:代表選舉的次數,ZXID高

原创 解讀面試題,徹底搞懂類加載和初始化順序

在高級面試過程中,始終逃不過面試官的追問三連: 你知道jvm是怎麼加載類的麼? 類的初始化順序你有了解麼? 我出一個面試題,你能答出來麼? 三連問下來,恐怕自己已經被勸退了,有的同學肯定會學過jvm是如何加載類的,但是被面試官一問,就一

原创 跟着“樂哉”學習併發編程系列教程-徹底搞懂volatile

什麼情況下會使用volatile關鍵字呢? <font color=gray> 在多線程開發過程中,操作同一個共享變量,想讓每個線程對這個共享變量的修改對其他線程立即可見,這個時候就需要使用volatile關鍵字進行修飾 </font>

原创 跟着“樂哉”學習redis系列教程-單線程的redis爲何如此快?

十一、單線程的redis爲何如此快? 因爲redis所有的數據都是存放到內存中,所有的運算都是內存級別的,所以是非常快的,但是因爲redis是單線程的,所以要小心使用redis指令,對於那些複雜度特別高的指令謹慎使用,否則會導致redis

原创 跟着“樂哉”學習redis系列教程-redis的過期策略

十二、redis的過期策略 定期刪除 策略 每100ms隨機抽查刪除過期數據 缺點 可能殘留大量沒有抽查過的數據 惰性刪除 策略 每次訪問數據時,先判斷是否過期,過期則刪除 缺點 可能殘留大量用戶沒有訪問過的過期數據 內存淘

原创 如何讓IDEA像Eclipse一樣在一個窗口打開多個項目

摘要在我們剛開始學習java的時候,使用的最多的ide工具就是eclipse,在eclipse中我們可以同時打開多個項目,很方便的在項目之間進行切換,剛開始接觸idea的時候,我們發現在一個窗口只能打開一個項目,如果需要打開多個項目就只能打

原创 springcloud系列之-快速上手feign 什麼是feign? 爲什麼用feign? 快速上手feign 如何用feign實現服務間的權限驗證? 如何實現? 總結

什麼是feign? Feign是一個聲明式WebService客戶端.使用Feign能讓編寫WebService客戶端更加簡單,它的使用方法是定義一個接口,然後在上面添加註解,同時也支持JAX-RS標準的註解.Feign也支持可拔插式的編碼

原创 springcloud系列之-五分鐘瞭解微服務和springcloud

摘要:本文主要是對自己學習微服務做一個總結和回顧,如果讀者感興趣的話,希望也能幫助到你。😜一、單體應用所謂單體應用就是把所有的功能和模塊全部都堆積到一起,這種模式也是傳統項目中最經常使用的一種模式,我們熟知的有MVC這種架構模式,在單體應用

原创 springcloud系列之-快速上手hystrix 什麼是hystrix? 爲什麼用hystrix? hystrix快速上手 總結

什麼是hystrix?hystrix是netflix針對微服務分佈式系統採用的熔斷保護中間件,hystrix提供了在服務不可達或請求超時之後,優雅的給客戶端返回響應結果。爲什麼用hystrix?在微服務場景下,很多服務相互依賴,如果不能對依