訊息中間件有:1、Kafka主要為高吞吐量的訂閱發布系統而設計,追求速度與持久化;2、RabbitMQ是使用Erlang語言開發的開源訊息佇列系統,基於AMQP協定來實作;3、RocketMQ是純Java開發,具有高吞吐量。
訊息中介軟體有:
Kafka、RabbitMQ、RocketMQ
#1 、Kafka
Kafka是LinkedIn開源的分散式發布-訂閱訊息系統,目前歸屬於Apache頂級專案。 Kafka主要為高吞吐量的訂閱發布系統而設計,追求速度與持久化。 kafka中的消息由鍵、值、時間戳組成,kafka不記錄每個訊息被誰使用,只透過偏移量記錄哪些訊息是未讀的,kafka中可以指定消費群組來實現訂閱發布的功能。
2、RabbitMQ
RabbitMQ是使用Erlang語言開發的開源訊息佇列系統,基於AMQP協定來實作。 AMQP的主要特徵是面向訊息、佇列、路由(包括點對點和發布/訂閱)、可靠性、安全性。 AMQP協定更多用在企業系統內,對資料一致性、穩定性和可靠性要求很高的場景,對效能和吞吐量的要求還在其次。
3、RocketMQ
RocketMQ是阿里開源的訊息中間件,它是純Java開發,具有高吞吐量、高可用性、適合大規模分散式系統應用的特點。 RocketMQ想法起源於Kafka,但並非Kafka的一個Copy,它對訊息的可靠傳輸及事務性做了優化,目前在阿里集團被廣泛應用於交易、充值、流計算、訊息推送、日誌流式處理、 binglog分發等場景。支援的客戶端語言不多,目前是Java及C ,其中C 還不成熟;
5、Kafka、RabbitMQ、RocketMQ對比
########################################## #####1、Rabbitmq比kafka可靠,kafka更適合IO高吞吐的處理,例如ELK日誌收集。 ######2、kafka具有高的吞吐量,內部採用訊息的批次處理,zero-copy機制,資料的儲存和取得是本地磁碟順序批量操作,具有O(1)的複雜度,訊息處理的效率很高。 rabbitMQ在吞吐量方面稍遜於kafka,他們的出發點不一樣,rabbitMQ支援對訊息的可靠的傳遞,支援事務,不支援批量的操作;基於儲存的可靠性的要求儲存可以採用記憶體或硬碟。 ###以上是訊息中間件有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!