之前一直有想學其他的 Message Queue,趁這次機會和大家一起來好好瞭解 RabbitMQ
RabbitMQ 是一個開源的 Message queue 軟體,他是用 AMQP (Advanced Message Queuing Protocol) 來實現,但也支援其他協定,如 MQTT、STOMP 和 HTTP。它也支援多種程式語言,如: Python、PHP、GO、Swift 等。這使它在多種情境和不同應用下都能具備很好的靈活性。
These are applications or services that generate and send messages to RabbitMQ. The messages are sent to an exchange.
Queues store messages until they are consumed by consumers.
These are applications or services that receive and process messages from RabbitMQ.
RabbitMQ routes the messages from producers to appropriate queues using exchanges.
Direct
最簡單的模式,只有單一 Producer 不透過 Exchange 直接傳到 Queue 中,每個 Queu 也只有一個 Consumer 會接收。
Work Queue
和 Direcr 較像,只是會有多個 Consumer 會去接收。
Publish/Subscribe
就是發布和訂閱的模式,Consumer 可以訂閱 Queue,訂閱的 Consumer 就可以接收到 Queue 的訊息。
Routing
Routing 算是 Work Queue 的加強版,他可以透過 routing key,讓 EXCHANGE 可以知道要發到哪個 Queue中,我們可以透過程式的過濾,限制要傳送的 Queue。
Topics