Lunski's Clutter

This is a place to put my clutters, no matter you like it or not, welcome here.

0%

RabbitMQ

Hi RabbitMQ。

O

使用RabbitMQ

KRs

  1. RabbitMQ背景 100%
  2. 撰寫範例 80%

Java Message Service(JMS)

Client-Server訊息的傳送、接收、頻道(Channel)、主題(Topic)、佇列 (Queue)等標準介面

RabbitMQ

  1. Broker,傳遞訊息的一種架構, JMS Client.。
  2. Server用Erlang寫成,Client支持Java, Python…。

比較

  • 快速建置,性能不要求:RabbitMQ
  • 線上處理,低延遲高穩定:RocketMQ
  • 龐大數據,日誌: Kafka

RabbitMQ:吞吐量不大:萬條事件/秒

  1. 複製發布事件(消息)耗費資源
  2. 延時隊列:失敗事件重新入隊,不保証順序
  3. 事件可能都置於同隊列
  4. 死信隊列:成功的事件無法重放

  1. 事件批配開發成本低
  2. 每個事件自帶TTL

Kafka:吞吐量大:十萬條事件/秒

  1. 讓使用者直接獲取事件
  2. 延時隊列:不會歸隊
  3. 事件良好分配隊列
  4. 死信隊列:成功事件可以重放

  1. 事件批配開發成本高

  2. 延遲隊列成本高

  3. Kafka、RabbitMQ、RocketMQ區別

  4. 完整比較

  5. 跟kafka類似,更多支持,但如果使用者規模增大,吞吐量高,還是建議kafka。

Rabbit docker service

1
2
3
docker pull rabbitmq:management
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
127.0.0.1:15672

img

Code

img
img

時程: 2023/4/1- 2023/5/1

Spring Boot + RabbitMq

ref1 ref2 ref3

Elasticsearch


如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)

Welcome to my other publishing channels