1. 程式人生 > >訊息佇列mq總結(重點看,比較了主流訊息佇列框架)

訊息佇列mq總結(重點看,比較了主流訊息佇列框架)

RabbitMQ/Kafka/ZeroMQ 都能提供訊息佇列服務,但有很大的區別。
在面向服務架構中通過訊息代理(比如 RabbitMQ / Kafka等),使用生產者-消費者模式在服務間進行非同步通訊是一種比較好的思想。
因為服務間依賴由強耦合變成了鬆耦合。訊息代理都會提供持久化機制,在消費者負載高或者掉線的情況下會把訊息儲存起來,不會丟失。就是說生產者和消費者不需要同時線上,這是傳統的請求-應答模式比較難做到的,需要一箇中間件來專門做這件事。其次訊息代理可以根據訊息本身做簡單的路由策略,消費者可以根據這個來做負載均衡,業務分離等。
缺點也有,就是需要額外搭建訊息代理叢集(但優點是大於缺點的 ) 。
ZeroMQ 和 RabbitMQ/Kafka 不同,它只是一個非同步訊息庫,在套接字的基礎上提供了類似於訊息代理的機制。使用 ZeroMQ 的話,需要對自己的業務程式碼進行改造,不利於服務解耦。
RabbitMQ 支援 AMQP(二進位制),STOMP(文字),MQTT(二進位制),HTTP(裡面包裝其他協議)等協議。Kafka 使用自己的協議。
Kafka 自身服務和消費者都需要依賴 Zookeeper。
RabbitMQ 在有大量訊息堆積的情況下效能會下降,Kafka不會。畢竟AMQP設計的初衷不是用來持久化海量訊息的,而Kafka一開始是用來處理海量日誌的。
總的來說,RabbitMQ 和 Kafka 都是十分優秀的分散式的訊息代理服務,只要合理部署,不作,基本上可以滿足生產條件下的任何需求。

相關推薦

訊息佇列mq總結重點比較主流訊息佇列框架

RabbitMQ/Kafka/ZeroMQ 都能提供訊息佇列服務,但有很大的區別。在面向服務架構中通過訊息代理(比如 RabbitMQ / Kafka等),使用生產者-消費者模式在服務間進行非同步通訊是一種比較好的思想。因為服務間依賴由強耦合變成了鬆耦合。訊息代理都會提供持久化機制,在消費者負載高或者掉線的情

消息隊列mq總結重點比較主流消息隊列框架

機制 擴展 消息處理 通過 針對 代理服務 diff 采集 日誌系統 轉自:http://blog.csdn.net/konglongaa/article/details/52208273 http://blog.csdn.net/oMaverick1/article/d

Redis快取和RabbitMQ訊息解決購車問題使用者登入使用者未登入和購物車合併(轉載)

本文轉自:https://blog.csdn.net/millery22/article/details/49756667;怕以後找不到就cp下來了 在逛各大電商網站的時候,總會有將商品加入購物車,然後合併付款,這個大大的提高了使用者的體驗,某東更是任性,在未登入的情況下都可

最新centos7 vpn 阿里雲 pptp 搭建VPN學習總結不少資料鮮有完整無誤遂作此文

個人搭建VPN學習總結 查看了不少資料,鮮有齊全無誤的,遂作此文件,以期幫助到相同學習目標的朋友。 本文件適用於不太懂Linux,且需要在Linux嘗試搭建VPN的童鞋。(搭建、配置詳見下載文件)附地址:https://download.csdn.net/download/n

訊息佇列mq總結

RabbitMQ/Kafka/ZeroMQ 都能提供訊息佇列服務,但有很大的區別。 在面向服務架構中通過訊息代理(比如 RabbitMQ / Kafka等),使用生產者-消費者模式在服務間進行非同步通訊是一種比較好的思想。 因為服務間依賴由強耦合變成了鬆耦合。訊息代理都會提供持久化機制,在消費者負載高或者掉線

Java運算符使用總結重點:自增自減、位運算和邏輯運算

運算 計算器 可讀性 過多 移位運算 style avi 學會 new Java運算符共包括這幾種:算術運算符、比較運算符、位運算符、邏輯運算符、賦值運算符和其他運算符。(該圖來自網絡) 簡單的運算符,就不過多介紹使用了,可自行測試。關於賦值運算,可以結合算術運

第一階段項目技術點總結ES6技術vue技術

每次 then 觸發 ext eba 拆分 點擊 log 是否 多思多想,勤勞! 1. 擴展運算符‘...‘,主要操作用於數組的展開運算,一般簡單的用於數組的合並,數組每個元素的拆分 2.const routers = require.context ( ‘ 要操作的目

windows資源管理器只能不能用

getpath 對象 可用 pen std char cin 不同 進行 實現Windows資源管理器 問題描述 Windows資源管理器是用來管理計算機資源的窗口,電腦裏所有的文件都可以在資源管理器裏找到,可以在資源管理器裏查看文件夾的分層結構,可以利用資源管理器快速進行

Android 對話方塊總結確定取消單選多選進度條具體的進度條

/** * 彈出確定取消對話方塊 * * @param view */ public void click01(View view) { // 工廠設計模式,得到建立對話方塊的工廠 AlertDialog

有限狀態機FSM寫法的個人總結一段式二段式三段式

      狀態機描述時關鍵是要描述清楚幾個狀態機的要素,即如何進行狀態轉移,每個狀態的輸出是什麼,狀態轉移的條件等。具體描述時方法各種各樣,最常見的有三種描述方式:      (1)一段式:整個狀態機寫到一個always模組裡面,在該模組中既描述狀態轉移,又描述狀態的輸入

Spring框架的事務管理之基於AspectJ的註解方式重點掌握最簡單的方式

1. 步驟一:恢復轉賬的開發環境(具體開發環境實現見:https://www.cnblogs.com/wyhluckdog/p/10137283.html)2. 步驟二:applicationContext的基本配置為: <?xml version="1.0" encoding="UTF-8"?

作業系統最全知識點總結找工作考研必備

作為非科班出身的計算機愛好者,拜讀了作業系統書,刷了王道考研作業系統,收益頗豐,現將知識點總結如下,供找工作、考研的小夥伴們拿來作為作業系統複習提綱。 程序 記憶體 檔案 IO Xmind內容:http://pan.baidu.com/s/1i38bvzJ 密碼:b

TCP連線擁塞控制四種方法總結詳細簡單穩的一批

擁塞控制的一般原理 在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的效能就要變換,叫做擁塞 擁塞控制和流量控制的區別: 擁塞控制往往是一種全域性的,防止過多的資料注入到網路之中,而TCP連線的端點只要不能收到對方的確認資訊,猜想在網路中發生了擁塞,但並不知道發生

資料結構與演算法- 五大常用演算法總結分治法回溯法分治限界法貪心演算法動態規劃法

1.分治法(Recurrence and Divide-Conquer)        對於一個規模為n的問題,若該問題可以容易解決(比如說規模n較小)則直接解決,否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解決這些子問

PyQt 的一些小總結 訊號槽彈框

一些基本的資料網上都可以找到,這裡就說一下這幾天遇到的 1,PYQt4 中訊號槽機制: 本想點選一個按鈕然後實現去另一個函式,最初這樣寫的: self.connect(button, QtCore.S

2017滴滴出行實習面試總結測試崗拿到offer

fork:通過寫時拷貝機制建立子程序,子程序通過拷貝父程序的頁表與父程序共享相同的實體記憶體(被標記為只讀),當其中一方試圖修改實體記憶體上的資料時發生中斷,核心拷貝被修改頁並修改子程序的頁表使其指向新拷貝的一頁,之後對該頁上的資料進行修改不再產生中斷。因此可以理解成父程序和子程序擁有獨立的地址空間而相互不干

sql不走索引總結多記住啊

Oracle在執行一個SQL之前,首先要分析一下語句的執行計劃,然後再按執行計劃去執行。分析語句的執行計劃的工作是 由優化器(Optimizer)來完成的。不同的情況,一條SQL可能有多種執行計劃,但在某一時點,一定只有一種執行計劃是最優的,花費時間是最少的。 相信你一定會用Pl/sql Develop

常見排序演算法總結實現原理穩定度使用場景時間複雜度

快速排序是目前基於比較的內部排序中被認為是最好的方法,當待排序的關鍵字是隨機分佈時,快速排序的平均時間最短;堆排序所需的輔助空間少於快速排序,並且不會出現快速排序可能出現的最壞情況。這兩種排序都是不穩定的。若要求排序穩定,則可選用歸併排序。但本章介紹的從單個記錄起進行兩兩歸併的排序演算法並不值得提倡,通常可以

iOS獲取裝置全域性資訊方法總結如訊號電量裝置標示

iOS獲取裝置全域性資訊方法總結 為系統建立一個隨機的標示符 (NSString*) createUUID { NSString *id = [[NSUserDefaults standardUserDefaults] objectFor

我的秋招總結百度搜狗京東美團科大訊飛新華三國家網際網路應急中心微盟ofo面經

寫在前面的話: 一轉眼已經十一月下旬,也終於得空能夠把剛過去不久的秋招記錄一下,本人是軟體工程專業,工作職位投遞的主要是大資料開發和軟體開發。這篇文章會涉及一些公司的面經以及我個人的一些心得體會,希望能夠對能夠看到這篇文章的朋友有所幫助。 八月到十月,三個多月的時間裡,投