自己學習RabbitMQ的理解

2021-10-22 07:14:43 字數 1316 閱讀 2947

訊息佇列(messagequeue,簡稱mq):是在訊息的傳輸過程中儲存訊息的容器。

mq框架非常之多,比較流行的有rabbitmq、activemq、zeromq、kafka,以及阿里開源的rocketmq。

從社群活躍度,按照目前網路上的資料,rabbitmq 、activemq 、zeromq 三者中,綜合來看,rabbitmq是首選;

持久化訊息比較,zeromq不支援,activemq 和rabbitmq 都支援。持久化訊息主要是指我們機器在不可抗力因素等情況下掛掉了,訊息不會丟失的機制;

綜合技術實現,可靠性、靈活的路由、集群、事務、高可用的佇列、訊息排序、問題追蹤、視覺化管理工具、外掛程式系統等等。rabbitmq / kafka 最好,activemq 次之,zeromq 最差。當然zeromq 也可以做到,不過自己必須手動寫**實現,**量不小。尤其是可靠性中的:永續性、投遞確認、發布者證實和高可用性;

高併發, 毋庸置疑,rabbitmq 最高,原因是它的實現語言是天生具備高併發高可用的erlang 語言;

關注的比較, rabbitmq和 kafka, rabbitmq比kafka 成熟,在可用性上,穩定性上,可靠性上, rabbitmq 勝於 kafka (理論上)。另外,kafka 的定位主要在日誌等方面, 因為kafka 設計的初衷就是處理日誌的,可以看做是乙個日誌(訊息)系統乙個重要元件,針對性很強,所以如果業務方面還是建議選擇 rabbitmq 。還有就是,kafka 的效能(吞吐量、tps )比rabbitmq 要高出來很多;

傳統模式解耦系統間耦合性太強,系統a在**中直接呼叫系統b和系統c的**,如果將來d系統接入,系統a還需要修改**,過於麻煩;

中介軟體模式解耦將訊息寫入訊息佇列,需要訊息的系統自己從訊息佇列中訂閱,從而系統a不需要做任何修改;

傳統模式非同步一些非必要的業務邏輯以同步的方式執行,太耗費時間;

中介軟體模式非同步將訊息寫入訊息佇列,非必要的業務邏輯以非同步的方式執行,加快響應速度;

傳統模式削峰併發量大的時候,所有的請求直接懟到資料庫,造成資料庫連線異常;

中介軟體模式削峰系統a慢慢的按照資料庫能處理的併發量,從訊息佇列中慢慢拉取訊息或者只處理前100條訊息;

基本訊息模型

work訊息模型

訂閱模型分類

廣播-fanout

定向-direct

話題-topic

持久化

RabbitMQ基礎理解

rabbitmq基本理解 1 rabbitmq簡介 mq全稱為message queue,訊息佇列 mq 是一種應用程式對應用程式的通訊方法。應用程式通過讀寫出入佇列的訊息 針對應用程式的資料 來通訊,而無需專用連線來鏈結它們。訊息傳遞指的是程式之間通過在訊息中傳送資料進行通訊,而不是通過直接呼叫彼...

自己理解的深度學習1

為什麼要說線性回歸方程呢?因為卷積神經網路的基礎是神經網路 神經網路的基礎就是線性回歸方程 最後得到乙個最優解,使得用方程算的值 與 真值之間的差值 代價 最小 引申到神經網路中就是 a,b,c就是x1,x2,x3的權值 d就是偏置值 神經網路 就是通過 輸入的 x系列資料 訓練資料 和 y系列資料...

我自己對學習的理解

很多同學在納悶,為什麼覺得自己付出了很多,但是成績依然不理想?其實不同的人對於數學這門課的天份是不一樣的,有的同學付出的不多,但學到的相對比較多,有的則不然。不論怎樣,學習的路很長,不能以一時成敗就裹足不前,要放長線,向遠看,樹立自己的目標,日積月累,相信時間的積累,最後的成果是豐碩的。天下不可能有...