python訊息佇列框架有哪些?以下為大家介紹幾個好用的訊息佇列框架:
RabbitMQ
是使用Erlang編寫的一個開源的訊息佇列,本身支援很多的協定:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它變的非常重量級,更適合於企業級的開發。同時實作了一個經紀人(Broker)架構,這表示訊息在傳送給客戶端時先在中心佇列排隊。對路由(Routing),負載平衡(Load balance)或資料持久化都有很好的支援。
Redis
是一個Key-Value的NoSQL資料庫,開發維護很活躍,雖然它是一個Key-Value資料庫儲存系統,但它本身支援MQ功能,所以完全可以當作一個輕量級的佇列服務來使用。對於RabbitMQ和Redis的入隊和出隊操作,各執行100萬次,每10萬次記錄一次執行時間。測試資料分為128Bytes、512Bytes、1K和10K四個不同大小的資料。實驗顯示:入隊時,當數據比較小時Redis的表現要高於RabbitMQ,而如果數據大小超過了10K,Redis則慢的無法忍受;出隊時,無論數據大小,Redis都表現出非常好的性能,而RabbitMQ的出隊表現則遠低於Redis。
相關推薦:《python影片教學》
ZeroMQ
號稱最快的訊息佇列系統,尤其針對大吞吐量的需求場景。 ZMQ能夠實現RabbitMQ不擅長的高階/複雜的佇列,但是開發人員需要自己組合多種技術框架,而技術上的複雜度是對這MQ能夠應用成功的挑戰。 ZeroMQ有一個獨特的非中間件的模式,你不需要安裝和運行一個訊息伺服器或中間件,因為你的應用程式將扮演了這個服務角色。你只需要簡單的引用ZeroMQ程式庫,可以使用NuGet安裝,然後你就可以愉快的在應用程式之間發送訊息了。但是ZeroMQ僅提供非持久性的佇列,也就是說如果down機,資料將會遺失。其中,Twitter的Storm中使用ZeroMQ作為資料流的傳輸。
ActiveMQ
#是Apache下的子項目。類似於ZeroMQ,它能夠以代理人和點對點的技術實現佇列。同時類似於RabbitMQ,它少量程式碼就可以有效率地實現高階應用場景。 RabbitMQ、ZeroMQ、ActiveMQ皆支援常用的多種語言客戶端 C 、Java、.Net,、Python、 Php、 Ruby等。
Jafka/Kafka
是高效能跨語言分散式Publish/Subscribe訊息佇列系統,而Jafka是在Kafka之上孵化而來的,即Kafka的一個升級版。具有以下特性:快速持久化,可以在O(1)的系統開銷下進行訊息持久化;高吞吐,在一台普通的伺服器上既可以達到10W/s的吞吐速率;完全的分散式系統,Broker 、Producer、Consumer都原生自動支援分散式,自動實現複雜均衡;支援Hadoop資料並行加載,對於像Hadoop的一樣的日誌資料和離線分析系統,但又要求即時處理的限制,這是一個可行的解決方案。 Kafka透過Hadoop的平行加載機制來統一了線上和離線的訊息處理,這一點也是本課題所研究系統所重視的。 Apache Kafka相對於ActiveMQ是一個非常輕量級的訊息系統,除了效能非常好之外,也是一個運作良好的分散式系統。
Rocketmq
RocketMQ 是阿里巴巴在2012年開源的分散式訊息中間件,目前已經捐贈給Apache 軟體基金會,並於2017年9月25日成為Apache 的頂級項目。作為經歷過多次阿里巴巴雙十一這種「超級工程」的洗禮並有穩定出色表現的國產中間件,以其高性能、低延時和高可靠等特性近年來已經也被越來越多的國內企業使用。
#以上是python的訊息佇列框架介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!