常見的消息中間件比較
ActiveMQ | RabbitMQ | RocketMQ | Kafka | |
---|---|---|---|---|
性能(單臺) | 6000+ | 萬級(12000+) | 十萬級 | 百萬級 |
消息持久化 | 支持 | 支持 | 支持 | 支持 |
多語言支持 | 支持 | 支持 | 很少 | 支持 |
社區活躍度 | 高 | 高 | 很少 | 高 |
支持協議 | 多(JMS AMQP) | 多(AMQP STOMP MQTT) | 少 | 少 |
綜合評價 | 優點: 成熟,已經在很多公司得到應用。較多的文檔。各種協議支持較好,有多個語言的成熟客戶端。 缺點: 性能較弱。缺乏大規模吞吐的場景的應用,有江河日下之感。 |
優點:性能較好,管理界面較豐富,在互聯網公司也有較大規模的應用,有多個語言的成熟客戶端。 缺點:內部機制很難了解,也意味很難定製和掌控。集羣不支持動態擴展。 |
優點:模型簡單,接口易用。在阿里有大規模應用。分佈式系統,性能很好,版本更新很快。 缺點:文檔少,支持的語言較少,尚未主流。 |
優點:天生分佈式,性能最好,所以常見用於大數據領域。 缺點:運維難度大,偶爾有數據混亂的情況,對ZooKeeeper強依賴。多副本機制下對帶寬有一定的要求。 |
JMS規範
- JMS規範模型包含如下幾個要素:
-
連接工廠
-
JMS連接
-
JMS會話
-
JMS目的/ Broker
-
JMS生產者
-
JMS消費者
- JMS消息模型
-
Point-to-Point(P2P) / 點對點
-
Topic/ 主題(發佈訂閱(Pub/Sub) )
ActiveMQ安裝、部署和運行
ActiveMQ安裝、部署和運行
http://activemq.apache.org/download.html
運行後在瀏覽器中訪問http://127.0.0.1:8161/admin
用戶名和密碼:admin/admin
ActiveMQ中,缺省 61616爲服務端口 8161爲管理控制檯端口
使用ActiveMQ
- DEMO
- 使用原生ActiveMQ的API編程(消費者的接收方式:同步和異步)
- 與Spring結合(操作多種消息類型)
- 與SpringBoot結合