日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Core 下使用 RabbitMQ

發(fā)布時間:2023/12/4 asp.net 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core 下使用 RabbitMQ 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

介紹

RabbitMQ是一個開源的,基于AMQP(Advanced Message Queuing Protocol)協(xié)議的完整,可復用的企業(yè)級消息隊列(Message Queue 一種應用程序與應用程序之間的一種通信方法)系統(tǒng),RabbitMQ可以實現(xiàn)點對點,發(fā)布訂閱等消息處理模式

  • 官網(wǎng):https://www.rabbitmq.com/dotnet.html

  • 開源地址:https://github.com/rabbitmq/rabbitmq-dotnet-client

安裝

  • docker下安裝 RabbitMQ

docker?pull?rabbitmq:3-management docker?run?-it?--rm?--name?rabbitmq?-p?5672:5672?-p?15672:15672?-d?rabbitmq:3-management
  • 其他平臺安裝 RabbitMQ:https://www.rabbitmq.com/download.html

為了開發(fā)方便,我在docker中安裝了RabbitMQ,RabbitMQ安裝完成后,默認端口打開地址為:http://localhost:15672,輸入默認賬號密碼,guest/guest,可以看到RabbitMQ UI界面。

快速開始

接下來我們用RabbitMQ來完成一個比較常見的生產(chǎn)者和消費者模式的代碼,新建兩個控制臺項目,RabbitMQConsumer和RabbitMQProducer。

分別在兩個項目中安裝組件

Install-Package RabbitMQ.Client

在RabbitMQProducer生產(chǎn)者項目中,添加以下代碼。

using?RabbitMQ.Client; using?System; using?System.Text;namespace?RabbitMQProducer {class?Program{static?void?Main(string[]?args){var?factory?=?new?ConnectionFactory(){HostName?=?"localhost",Port?=?5672,UserName?=?"guest",Password?=?"guest"};using?var?connection?=?factory.CreateConnection();using?var?channel?=?connection.CreateModel();var?exchange?=?"msg_test";channel.ExchangeDeclare(exchange,?type:?ExchangeType.Fanout);for?(int?i?=?0;?i?<?10000;?i++){var?message?=?$"hello,我是生產(chǎn)者【{i?+?1}】號";var?body?=?Encoding.UTF8.GetBytes(message);channel.BasicPublish(exchange,?routingKey:?"",?basicProperties:?null,?body:?body);Console.WriteLine($"-?發(fā)送消息:{message}");}}} }

模擬發(fā)出10000次消息,接下來在RabbitMQConsumer消費者項目中接收消息,代碼如下:

using?RabbitMQ.Client; using?RabbitMQ.Client.Events; using?System; using?System.Text;namespace?RabbitMQConsumer {class?Program{static?void?Main(string[]?args){var?factory?=?new?ConnectionFactory(){HostName?=?"localhost",Port?=?5672,UserName?=?"guest",Password?=?"guest"};using?var?connection?=?factory.CreateConnection();using?var?channel?=?connection.CreateModel();var?exchange?=?"msg_test";channel.ExchangeDeclare(exchange,?type:?ExchangeType.Fanout);var?queueName?=?channel.QueueDeclare().QueueName;channel.QueueBind(queue:?queueName,?exchange,?routingKey:?"");Console.WriteLine("開始監(jiān)聽消息...");while?(true){var?consumer?=?new?EventingBasicConsumer(channel);consumer.Received?+=?(model,?ea)?=>{byte[]?body?=?ea.Body.ToArray();var?message?=?Encoding.UTF8.GetString(body);Console.WriteLine($"-?接收到消息:{message}");};channel.BasicConsume(queue:?queueName,?autoAck:?true,?consumer:?consumer);}}} }

同時啟動兩個看看效果。

一閃而過,速度還是挺快的,更多操作可以查看官方教程:https://www.rabbitmq.com/getstarted.html

總結(jié)

以上是生活随笔為你收集整理的.NET Core 下使用 RabbitMQ的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。