search
HomeBackend DevelopmentC#.Net TutorialRabbitMQ basic concepts and principle examples

RabbitMQ basic concepts and principle examples

Jun 23, 2017 pm 04:35 PM
rabbitmqbased onInstallConfiguration

Basic concepts and principles of RabbitMQ

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

Installing RabbitMQ in Windows system

1. Download and install erlang (I use otp_win64_19.3 version)

Download address (choose 32 or 64 bits according to the operating system)

2. Download and install rabbitmq-server (I use It is rabbitmq-server-3.6.10 version)

Download address

After installation, see

in the installation directory

Next, use the enable DOS command

a. cd to the sbin directory. My installation directory is D:\RabbitMQServer\rabbitmq_server-3.6.10\sbin. Enter D: and press Enter, cd RabbitMQServer\rabbitmq_server-3.6 .10\sbin

b. Check whether the installation is successful. Command:

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.

Basic use of EasyNetQ

Install EasyNetQ in the project

## EasyNetQ depends on RabbitMQ.Client, so it will be installed into the project.

PublishPublish message

Model has a Queue feature, which defines the Queue name and Exchange name. Then directly use the Publish method to push the Msg to the specified queue through the switch specified by the Model.

Run the code and take a look at the MQ management page.

The switch TestQueue.Exchange specified by Model has been created, Type: topic, Features: D.

D:Durable Description The switch created by default is durable.

Because the message has not been subscribed, the corresponding queue cannot be seen in Queues.

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,

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.

Repeat the Publish operation just now to test the entire process.

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!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
C# and the .NET Runtime: How They Work TogetherC# and the .NET Runtime: How They Work TogetherApr 19, 2025 am 12:04 AM

C# and .NET runtime work closely together to empower developers to efficient, powerful and cross-platform development capabilities. 1) C# is a type-safe and object-oriented programming language designed to integrate seamlessly with the .NET framework. 2) The .NET runtime manages the execution of C# code, provides garbage collection, type safety and other services, and ensures efficient and cross-platform operation.

C# .NET Development: A Beginner's Guide to Getting StartedC# .NET Development: A Beginner's Guide to Getting StartedApr 18, 2025 am 12:17 AM

To start C#.NET development, you need to: 1. Understand the basic knowledge of C# and the core concepts of the .NET framework; 2. Master the basic concepts of variables, data types, control structures, functions and classes; 3. Learn advanced features of C#, such as LINQ and asynchronous programming; 4. Be familiar with debugging techniques and performance optimization methods for common errors. With these steps, you can gradually penetrate the world of C#.NET and write efficient applications.

C# and .NET: Understanding the Relationship Between the TwoC# and .NET: Understanding the Relationship Between the TwoApr 17, 2025 am 12:07 AM

The relationship between C# and .NET is inseparable, but they are not the same thing. C# is a programming language, while .NET is a development platform. C# is used to write code, compile into .NET's intermediate language (IL), and executed by the .NET runtime (CLR).

The Continued Relevance of C# .NET: A Look at Current UsageThe Continued Relevance of C# .NET: A Look at Current UsageApr 16, 2025 am 12:07 AM

C#.NET is still important because it provides powerful tools and libraries that support multiple application development. 1) C# combines .NET framework to make development efficient and convenient. 2) C#'s type safety and garbage collection mechanism enhance its advantages. 3) .NET provides a cross-platform running environment and rich APIs, improving development flexibility.

From Web to Desktop: The Versatility of C# .NETFrom Web to Desktop: The Versatility of C# .NETApr 15, 2025 am 12:07 AM

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C# .NET and the Future: Adapting to New TechnologiesC# .NET and the Future: Adapting to New TechnologiesApr 14, 2025 am 12:06 AM

C# and .NET adapt to the needs of emerging technologies through continuous updates and optimizations. 1) C# 9.0 and .NET5 introduce record type and performance optimization. 2) .NETCore enhances cloud native and containerized support. 3) ASP.NETCore integrates with modern web technologies. 4) ML.NET supports machine learning and artificial intelligence. 5) Asynchronous programming and best practices improve performance.

Is C# .NET Right for You? Evaluating its ApplicabilityIs C# .NET Right for You? Evaluating its ApplicabilityApr 13, 2025 am 12:03 AM

C#.NETissuitableforenterprise-levelapplicationswithintheMicrosoftecosystemduetoitsstrongtyping,richlibraries,androbustperformance.However,itmaynotbeidealforcross-platformdevelopmentorwhenrawspeediscritical,wherelanguageslikeRustorGomightbepreferable.

C# Code within .NET: Exploring the Programming ProcessC# Code within .NET: Exploring the Programming ProcessApr 12, 2025 am 12:02 AM

The programming process of C# in .NET includes the following steps: 1) writing C# code, 2) compiling into an intermediate language (IL), and 3) executing by the .NET runtime (CLR). The advantages of C# in .NET are its modern syntax, powerful type system and tight integration with the .NET framework, suitable for various development scenarios from desktop applications to web services.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)