原创 RabbitMQ如何保證冪等性?

有個兄弟去年參加阿里面試的時候,就被問到了冪等性的問題。 冪等性是分佈式系統設計中的一個重要概念,是在做系統或者接口設計時要着重考慮的問題,尤其像支付寶、銀行、互聯網金融等涉及錢的系統,既要高效,數據也要準確,絕對不能出現多扣款,多打款等

原创 Redis緩存穿透、緩存擊穿和雪崩

一、緩存穿透 在討論緩存穿透之前,我們先來看下從緩存中讀取數據時的流程,如圖: 緩存穿透是什麼? 如果每次都去查一個“緩存和數據庫中都必不存在的數據(如id=-1的數據)”,因爲緩存中不存在,那麼每次請求都會打到DB上,從而導致緩存失去

原创 大白話 kafka 架構原理

大數據時代來臨,如果你還不知道Kafka那就真的out了!據統計,有三分之一的世界財富500強企業正在使用Kafka,包括所有TOP10旅遊公司,7家TOP10銀行,8家TOP10保險公司,9家TOP10電信公司等等。LinkedIn、M

原创 如何保證Redis緩存和數據庫的雙寫一致性?

在數據庫+緩存模式下,當數據庫中的數據需要更新時,緩存裏的數據怎麼處理?如何保證緩存和數據庫中數據的一致性?常用的解決方案有兩種(其他渣渣的方案這裏不討論): 1、先刪除緩存,再更新數據庫; 2、先更新數據庫,再刪除緩存; 下面我們就來看

原创 RabbitMQ 的核心組件&工作原理【很重要】

RabbitMQ 最初起源於金融系統,用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面都表現不俗,也是目前社區活躍度較高的消息中間件之一。本文我們就來看看RabbitMQ很重要的核心的組件。 一、RabbitMQ簡介 Ra

原创 SpringBoot + RabbitMQ 實現"簡單隊列"

RabbitMQ官網提供了七種隊列模型,分別是:簡單隊列、工作隊列、發佈訂閱、路由模式、主題模式、RPC模式、發佈者確認模式。 本文在SpringBoot+RabbitMQ環境實現"簡單隊列"模式。 一、簡單隊列 特點:一個生產者,一個

原创 秒懂 kafka HA(高可用)

​我們知道,kafka中每個topic被劃分爲多個partition,每個partition又有多個副本,那麼這些分區副本是怎麼均勻的分佈在整個kafka集羣的broker節點上的?partition副本的leader是通過什麼算法選舉出

原创 SpringBoot集成kafka全面實戰

本文是SpringBoot+Kafka的實戰講解,如果對kafka的架構原理還不瞭解的讀者,建議先看一下《大白話kafka架構原理》、《秒懂kafka HA(高可用)》兩篇文章。 一、生產者實踐 普通生產者 帶回調的生產者 自定

原创 Linux搭建 zookeeper+kafka 集羣

因爲kafka是依賴於zookeeper來協調管理的,安裝kafka之前我們需要先安裝zookeeper,而zookeeper的運行又需要jdk來編譯,所以安裝zookeeper之前應該先安裝jkd。所以,我們需要依次安裝:jdk——>z

原创 去除IDEA代碼中的duplicated波浪線(警告線)

如果IDEA中代碼下面出現下圖所示的黃色警告線,提示Finds duplicated code,表示在項目中有重複代碼,可考慮重構。 那如果我們想要關閉這個功能,該怎麼做呢? 首先選中File,點擊setting,出現setting窗口

原创 SpringBoot + RabbitMQ 實現"訂閱模式"

RabbitMQ官網提供了七種隊列模型,分別是:簡單隊列、工作隊列、發佈訂閱、路由模式、主題模式、RPC模式、發佈者確認模式。 本文在SpringBoot+RabbitMQ環境實現"訂閱模式"。 一、訂閱模式   特點: 1、X代表交

原创 SpringBoot + RabbitMQ 實現"主題模式"

RabbitMQ官網提供了七種隊列模型,分別是:簡單隊列、工作隊列、發佈訂閱、路由模式、主題模式、RPC模式、發佈者確認模式。 本文在SpringBoot+RabbitMQ環境實現"主題模式"。 一、主題模式 特點: 1、X代表交換機

原创 RabbitMQ如何保證消息的可靠傳輸?

  一、消息的可靠傳輸 消息的可靠傳輸是指消息從Producer發送到Broker,再到Consumer被消費的整個過程中,要確保消息不丟失,如果出現消息丟失的情況,系統也要能發現,並執行一些補償措施,而不是消息丟了都不知道,石沉大海。

原创 SpringBoot+RabbitMQ 實現"工作隊列"

RabbitMQ官網提供了七種隊列模型,分別是:簡單隊列、工作隊列、發佈訂閱、路由模式、主題模式、RPC模式、發佈者確認模式。 本文在SpringBoot+RabbitMQ環境實現"工作隊列"模式。 一、工作隊列   特點:一個生產者

原创 SpringBoot + RabbitMQ 實現"路由模式"

RabbitMQ官網提供了七種隊列模型,分別是:簡單隊列、工作隊列、發佈訂閱、路由模式、主題模式、RPC模式、發佈者確認模式。 本文在SpringBoot+RabbitMQ環境實現"路由模式"。 一、路由模式 特點: 1、X代表交換機