The content of this article is to introduce RabbitMQ and let everyone know some related knowledge of RabbitMQ. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
RabbitMQ Overview
RabbitMQ
is a high-performance distributed messaging middleware. It is written by Erlang, a language that inherently supports distribution and has extremely high performance (but is difficult to get started).
Communication Concept
RabbitMQ is simply a queue service. Our producers continue to deliver messages to it, and consumers continue to Get messages from it. But compared to simple queues such as List using redis
, RabbitMQ's message delivery is more flexible. First, you need to know some communication concepts in RabbitMQ:
● Exchange (exchanger)
● Queue (queue): message queue carrier, each message will be put into one or more queues .
● Binding: Its function is to bind exchange and queue according to routing rules.
● Routing key: Exchange delivers messages based on this keyword.
● vhost (virtual host): Under different vhosts, data is completely isolated. The default vhost is "/"
● Channel (channel): Under one tcp connection, multiple channel, each channel represents a session task.
●producer
●consumer
Exchange
in RabbitMQ is similar to a router, our consumer
will not deliver the message directly to the queue, but to exchange
, and exchange
will be sent to a specific queue based on the routing key when we deliver. This design allows messages to be flexibly routed and sent to a certain type of queue, forming a one-to-many relationship instead of just one-to-one.
Exchange
So exchange
in RabbitMQ is very convenient and powerful. It has several types:
●direct
●fanout
●topic
●headers (almost never used)
direct
The exchanger is very simple. Sometimes we just need a very simple queue (deliver the message into it and then continue to consume it). At this time we can use the direct
exchanger. Its rule is: If If the routing key matches, the message will be delivered to the corresponding queue.
fanout
The switch ignores the routing key and sends the message to a batch of queues simultaneously .
topic
is to send messages to a certain type of queue based on different routing keys.
Related video tutorial recommendations: "PHP Tutorial"
The above is the entire content of this article, I hope it can It will be helpful to everyone’s study. For more exciting content, you can pay attention to the relevant tutorial columns of the PHP Chinese website! ! !
The above is the detailed content of What is RabbitMQ? A brief introduction to RabbitMQ. For more information, please follow other related articles on the PHP Chinese website!