訊息列隊元件的一些特性比較

2022-01-11 08:54:37 字數 1281 閱讀 2591

rabbitmq

基於amqp實現,傳統的messaging queue系統實現,基於erlang。老牌mq產品了。amqp協議更多用在企業系統內,對資料一致性、穩定性和可靠性要求很高的場景,對效能和吞吐量還在其次。

kafka

linkedin開源的mq系統,主要特點是基於pull的模式來處理訊息消費,追求高吞吐量,一開始的目的就是用於日誌收集和傳輸,0.8開始支援複製,不支援事務,適合產生大量資料的網際網路服務的資料收集業務。

zeromq

只是乙個網路程式設計的pattern庫,將常見的網路請求形式(分組管理,鏈結管理,發布訂閱等)模式化、元件化,簡而言之socket之上、mq之下。對於mq來說,網路傳輸只是它的一部分,更多需要處理的是訊息儲存、路由、broker服務發現和查詢、事務、消費模式(ack、重投等)、集群服務等。

nsq

基於go語言的分布式實時訊息平台,可用於大規模系統中的實時訊息服務,並且每天能夠處理數億級別的訊息,其設計目標是為在分布式環境下執行的去中心化服務提供乙個強大的基礎架構。 nsq具有分布式、去中心化的拓撲結構,該結構具有無單點故障、故障容錯、高可用性以及能夠保證訊息的可靠傳遞的特徵。nsq非常容易配置和部署,且具有最大的靈活性,支援眾多訊息協議。

redis

是乙個key-value的nosql資料庫,雖然它是乙個key-value資料庫儲存系統,但它本身支援mq功能,比如stack overflow 使用列隊特性與websocket結合推送訊息與更新快取策略。

備註:除 rabbitmq、activemq、rocketmq、kafka、pulsar 外,其他的訊息系統還包括 nsq(不提供多副本機制,預設不進行持久化)、emq、kestrel(一般作為佇列)、nats(預設無持久化方案,需要用 nats streaming 和 liftbridge 為 nats 提供了持久化的、多副本的訊息儲存支援)等。

refer:

nsq:分布式的實時訊息平台

apache kafka:下一代分布式訊息系統

kafka是個奇葩!——linkin**學習筆記

rabbitmq和nsq的一些特點的比較

rabbitmq與redis佇列對比

【訊息佇列mq】各類mq比較

訊息佇列設計精要

團隊組建的一些想法

瞎寫了點,不做正規參考 關於成員組成 成員的組成,總體思想是牛逼的人得多,領域領頭羊得多,這個不再闡述 所有有基本常識的人都知道什麼樣的人好,難的是如何召集到這些人,跟如何把這些人留住 想要什麼樣的人?1.機器 人 類似富士康那種,靠重複性勞動就能出績效的人,大多數的網路公司因為行業特殊性都沒有針對...

python 的一些特性

class student object say this is a student class def init self,name,age 構造器 self.name name self.age age classmethod 類方法 def showclassmethod cls print ...

https的一些特性

支援客戶 伺服器模式 簡單快速 客戶向服務端請求服務時,只需傳送請求方式和路徑。靈活 允許傳輸任意型別的資料物件。由content type加以標記。無連線 每次響應乙個請求,響應完成以後就斷開連線。無狀態 伺服器不儲存瀏覽器的任何資訊。每次提交的請求之間沒有關聯。持續性瀏覽器和伺服器建立tcp連線...