常見的訊息佇列
需要JAVA Spring Cloud大型企業分散式微服務雲構建的B2B2C電子商務平臺原始碼請加企鵝求求:二一四七七七五六三三
目前業界有四款常用的訊息佇列,它們分別是RabbitMQ、RocketMQ、ActiveMQ和Kafka。 RabbitMQ RabbitMQ在2007年釋出,是一個在AMQP(高階訊息佇列協議)基礎上完成的,可複用的企業訊息系統,是當前最流行的訊息中介軟體之一。 RabbitMQ的主要特性有:
可靠性: RabbitMQ提供了多種技術可以讓你在效能和可靠性之間進行權衡。這些技術包括永續性機制、投遞確認、釋出者證實和高可用性機制; 靈活的路由:訊息在到達佇列前是通過交換機進行路由的。RabbitMQ為典型的路由邏輯提供了多種內建交換機型別。如果你有更復雜的路由需求,可以將這些交換機組合起來使用,你甚至可以實現自己的交換機型別,並且當做RabbitMQ的外掛來使用; 訊息叢集:在相同區域網中的多個RabbitMQ伺服器可以聚合在一起,作為一個獨立的邏輯代理來使用; 佇列高可用:佇列可以在叢集中的機器上進行映象,以確保在硬體問題下還保證訊息安全; 多種協議的支援:RabbitMQ支援多種訊息佇列協議; 多語言支援:RabbitMQ的伺服器端用Erlang語言編寫,其客戶端支援基本所有程式語言; 管理介面: RabbitMQ有一個易用的使用者介面,使得使用者可以監控和管理訊息Broker的許多方面; 跟蹤機制:如果訊息異常,RabbitMQ提供訊息跟蹤機制,使用者可以跟蹤發現異常; 外掛機制:提供了許多外掛,來從多方面進行擴充套件,也可以編寫自己的外掛;
RabbitMQ的優點有:由於erlang語言的特性,mq 效能較好,高併發; 健壯、穩定、易用、跨平臺、支援多種語言、文件齊全; 有訊息確認機制和持久化機制,可靠性高; 高度可定製的路由; 管理介面較豐富,在網際網路公司也有較大規模的應用; 社群活躍度高;
RabbitMQ的缺點有:
儘管結合erlang語言本身的併發優勢,效能較好,但是不利於做二次開發和維護; 實現了代理架構,意味著訊息在傳送到客戶端之前可以在中央節點上排隊。此特性使得RabbitMQ易於使用和部署,但是使得其執行速度較慢,因為中央節點增加了延遲,訊息封裝後也比較大; 需要學習比較複雜的介面和協議,學習和維護成本較高;