rocketmq介紹,先了解rmq,後研究

2021-08-13 10:19:26 字數 1766 閱讀 8961

既然用了rmq肯定還是要了解一下rmq的優點,以及能解決哪些問題,因為以後面試的時候還是會用到的。

高效的消費者水平擴充套件能力

支援高併發,分布式

億萬級資料堆積(重點)

保證資料順序(重點)

實時訊息訂閱機制

較少的依賴

缺點:訊息無法避免重複,但是自己在消費端可以控制

訊息的優先順序沒有實現,但是可以通過其他方式實現,能解決絕大部分的業務問題

發布訂閱功能,訊息中介軟體的基本功能

訊息優先順序,rmq給的方案是根據topic區分優先順序,因為rmq沒有實現優先順序的功能

訊息順序,這個應該說是rmq的亮點,作為阿里開發的外掛程式,那麼訂單順序這些肯定還是很靠譜的

訊息過濾,生產者給的訊息不可避免的有無用訊息

rmq支援兩種過濾方式:一種是broker過濾,壓力在broker上,省去了發給消費者的過程,一種是consumer過濾,壓力在consumer,可以自定義過濾方式,但是會有很多無用的訊息到consumer

訊息持久化,rmq的訊息是寫入到磁碟的

訊息可靠性,也就是出現意外訊息丟失的多少,rmq可靠性很高

訊息實時性

最少投遞一次

訊息重複,這個應該是rmq沒法避免的

當佇列滿了怎麼辦?1拋異常,2按照一定策略丟訊息

訊息重推,業務需要,重新消費

訊息堆積的能力

分布式事物

定時訊息

訊息重試,消費失敗,再次消費,有重試次數,可配置

rocketmq中的專業術語

1.topic

topic表示訊息的第一級型別,比如乙個電商系統的訊息可以分為:交易訊息、物流資訊等等,一條訊息必須有乙個topic

2.tag

tag表示訊息的第二級型別,比如交易訊息可以分為:交易建立訊息、交易完成訊息等等,一條訊息可以沒有tag,rocketmq提供兩級訊息分類,方便大家靈活控制

3.queue(訊息佇列)

乙個topic下,我們可以設定多個queue(訊息佇列)。當我們傳送訊息時,需要指定該訊息的topic,rocketmq會輪訓該topic下的所有佇列,將訊息傳送出去

4.producer

producer表示訊息的生產者,訊息佇列的本質就是實現了publish-subscribe模式,生產者生產訊息,消費者消費訊息,所以這裡的producer就是用來生產和傳送訊息的,一般指業務系統

5.producer group

是一類producer的集合名詞,這類producer通常傳送一類訊息,且傳送邏輯一致。

6.broker

broker是rmq的核心,訊息的中轉者,負責儲存和**訊息。可以理解為訊息佇列伺服器,提供了訊息的接收、儲存、拉取和**服務

7.nameserver

名稱服務,兩個功能:

接收broker的請求,註冊broker的路由資訊,所以啟動小例子的時候都是要先啟動nameserver服務,然後啟動broker並在nameserver註冊

接收client的請求,根據某個topic獲取其到broker的路由資訊

nameserver沒有狀態,可以橫向擴充套件,每個broker在啟動的時候會到nameserver註冊,producer在傳送訊息前會根據topic到nameserver獲取路由資訊,consumer也會定時獲取topic資訊。

學習Spring,先了解它的生態

摘要 spring不止是提供了ioc aop的功能,還提供了大量的基於spring的專案,拿來用就行了,用於一站式開發,大大降低了開發的難度。下面列舉下主要的一些spring的生態專案 spring boot 一站式快速開發解決專案。spring cloud 提供對分布式系統的支援。spring d...

rocketMq 延遲訊息介紹

在rocketmq的訊息體系中,很重要的乙個訊息體系是延遲訊息,以前需要定時去實現的任務現在有rocketmq自身幫忙解決了,這篇文章主要是講解清楚延遲訊息的實現細節,延遲訊息的是細節,延遲訊息的實現細節,重要的事情說3遍。1 訊息先寫入commitlog檔案 2 消費執行緒將資料儲存以schedu...

什麼是遞迴 先了解什麼是遞迴

一說起遞迴,我想每個人都不陌生。舉個從小就聽過的例子 從前有座山,山里有座廟,廟裡有個和尚,和尚在講故事,從前有座山,山里有座廟,廟裡有個和尚,和尚在講故事,從前有座山 還有你從兩面相對的鏡子中看到的畫面,其實都是抽象出來的遞迴現象,但是嚴格來說並不是遞迴,因為會一直重複下去,沒有終止條件,那就稱為...