Hi RabbitMQ。
O
使用RabbitMQ
KRs
- RabbitMQ背景 100%
- 撰寫範例 80%
Java Message Service(JMS)
Client-Server訊息的傳送、接收、頻道(Channel)、主題(Topic)、佇列 (Queue)等標準介面
RabbitMQ
- Broker,傳遞訊息的一種架構, JMS Client.。
- Server用Erlang寫成,Client支持Java, Python…。
比較
- 快速建置,性能不要求:RabbitMQ
- 線上處理,低延遲高穩定:RocketMQ
- 龐大數據,日誌: Kafka
RabbitMQ:吞吐量不大:萬條事件/秒
缺
- 複製發布事件(消息)耗費資源
- 延時隊列:失敗事件重新入隊,不保証順序
- 事件可能都置於同隊列
- 死信隊列:成功的事件無法重放
優
- 事件批配開發成本低
- 每個事件自帶TTL
Kafka:吞吐量大:十萬條事件/秒
優
- 讓使用者直接獲取事件
- 延時隊列:不會歸隊
- 事件良好分配隊列
- 死信隊列:成功事件可以重放
缺
事件批配開發成本高
延遲隊列成本高
跟kafka類似,更多支持,但如果使用者規模增大,吞吐量高,還是建議kafka。
Rabbit docker service
1 | docker pull rabbitmq:management |
Code
時程: 2023/4/1- 2023/5/1
Spring Boot + RabbitMq
Elasticsearch
如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)