1.AMQP, Advanced Message Queuing Protocol, is an open standard for application layer protocols. Designed for message-oriented middleware.
2.RabbitMQ is an open source AMQP implementation, and the server side is written in Erlang language.
3.Channel
Channel is the most important interface for us to deal with RabbitMQ. Most of our business operations are completed in the Channel interface, including Define Queue, define Exchange, bind Queue and Exchange, publish messages, etc.
4.Exchange (The producer sends the message to Exchange (exchange), and Exchange routes the message to one or more Queues (or discards them). Exchange Type commonly used by RabbitMQ There are four types: fanout, direct, topic, and headers)
5.Queue (RabbitMQ’s internal object, used to store messages)
6.Basic working principle
## Client (producer) send Message -->Exchange (the switch saves the message to the corresponding queue through different types)-->Queue
The client (consumer) consumes messages in the queue through subscription.
The above basic concepts are compiled from Detailed introduction to the basic concepts of RabbitMQ
rabbitmqctl status
c. Install the management plug-in command:rabbitmq-plugins enable rabbitmq_management
The installation is successful, enter http:/ in the browser /127.0.0.1:15672/ Enter the guest account guest password guest and successfully log in. Are you a little excited? The guest account is an administrator account and can add Exchanges, Queues, and Admin. But we generally do not use the guest account and continue to use commands to add accounts and permissions. d: Add user:
rabbitmqctl.bat add_user username password
e: Add "Super Administrator" role:rabbitmqctl.bat set_user_tags username administrator
mymq account is also a super administrator, Can access virtual hosts: No access, You can see that there are no virtual machines that can be accessed. Next, add the virtual machine. f: Add a virtual machine:rabbitmqctl add_vhost vhostName
## myvhost virtual machine does not exist Users, next bind an account to the virtual machine.
g: Set virtual machine and user permissions:
rabbitmqctl set_permissions -p virtual machine name account name ".*" ".*" ".*"
h: Out of habit, I usually delete the guest account:
rabbitmqctl.bat delete_user username Okay, log in to the management page again, everything is normal, and then the actual combat begins. D:Durable Description The switch created by default is durable. Topself is generally used to publish the console program into Windows Service. I will write a learning blog about Topself later when I have time.
##Basic use of EasyNetQ
Install EasyNetQ in the project
## EasyNetQ depends on RabbitMQ.Client, so it will be installed into the project.
PublishPublish message
Subscribe subscription message
Why do we need to put a while(true) on the subscription code? The purpose is to simulate the console program as a Windows service, because the console program runs in a flash and cannot actually subscribe to MQ messages. In actual development, Custom Topic
In this way, the message will be sent to the address beginning with the name Test. in all Queue queues.
Send and Receive
Messages can be sent to the specified queue through send and receive.
The above is the detailed content of RabbitMQ basic concepts and principle examples. For more information, please follow other related articles on the PHP Chinese website!