RabbitMQ简单应用

33 篇文章 0 订阅
2 篇文章 0 订阅

最近在网上学习了RabbitMQ,做一下简单的记录,主要实现功能:1、生产者(将待处理任务放入RabbitMQ)2、消费者(将MQ中的数据进行消费)

该案例基于.NET5的控制台应用程序,开发工具VS2019。

在使用RabbitMQ前需要先从Nuget包添加RabbitMQ引用!!!!

然后导入引用:

using RabbitMQ.Client;
using RabbitMQ.Client.Events;

生产者代码:

static void Main(string[] args)
        {
            #region 生产者-发送消息到MQ
            try
            {
                string queue = "normal";
                var connection = new RabbitMQ.Client.ConnectionFactory();
                connection.UserName = "admin";
                connection.Password = "admin";

                var conn = connection.CreateConnection(new List<string>() { "192.168.105.1" }, queue);
                var channel = conn.CreateModel();
                channel.QueueDeclare(queue, true, false, false, null);
                int i = 0;
                while (i < 100)
                {
                    string message = $"RabbitMQ消息-{i}";
                    var body = Encoding.UTF8.GetBytes(message);
                    channel.BasicPublish(exchange: "", routingKey: queue, null, body);
                    Thread.Sleep(100);
                    Console.WriteLine($"已向RabbitMQ发送{i}条消息");
                    i++;
                }
                Console.ReadLine();
            }
            catch (Exception ex)
            {

                throw;
            }
            #endregion
        }

消费者代码:

 static void Main(string[] args)
        {

            #region 消费者
            string queue = "normal";
            var connFactory = new ConnectionFactory()
            {
                UserName = "admin",
                Password = "admin",
                Port = 5672,
                HostName = "192.168.105.1",
                VirtualHost = "/"
            };
            var conn = connFactory.CreateConnection();
            var channel = conn.CreateModel();
            channel.QueueDeclare(queue, true, false, false, null);

            var consumer = new EventingBasicConsumer(channel);
            consumer.Received += (model, es) =>
            {
                var message = es.Body.ToArray();
                var body = Encoding.UTF8.GetString(message);
                Console.WriteLine(body);
            };
            channel.BasicConsume(queue, true, consumer);

            #endregion
            Console.ReadLine();
        }

以上步骤省略了安装RabbitMQ的过程,我是基于Linux+docker+rabbitmq进行操作的。如有疑问请私信。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值