C# rabbitMQ 接收消息和发送消息

RabbitMQ是比较流行的消息中间件,最近在使用这个消息队列,就抽空把此潦草的学习了一下:

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。

RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。

所有主要的编程语言均有与代理接口通讯的客户端库。(百度百科)

先笼统的说一下吧:

ConnectionFactory:消息中间件的对象

Connection:创建链接

Channel:会话和模型

Queue:队列的对象

ExChange:交换器

RoutingKey:路由钥匙

如果要使用ExChange和RoutingKey时要Queue创建相关的链接,要不消息就会放进无效的队列中,在我们的站点上可以进行配置,下面看一下发送的代码:

 static void Main(string[] args)
        {
            var factory = new ConnectionFactory();
            factory.HostName = "127.0.0.1";//主机名 
            factory.UserName = "";//默认用户名 
            factory.Password = "";//默认密码 

            using (var connection = factory.CreateConnection())
            using (var channel = connection.CreateModel())
            {
                channel.QueueDeclare("HelloQueue",true,false,false,null);
                channel.ExchangeDeclare("HelloExchange", "direct", false, false, null);
                
                for (int i = 0; i < 1000; i++)
                {
                    string message = "Hello World";
                    var body = Encoding.UTF8.GetBytes(message);
                    channel.BasicPublish("HelloExchange", "HelloRouting", null, body); //开始传递
                    Console.WriteLine("已发送: {0}", message + DateTime.Now + Environment.NewLine);
                    Thread.Sleep(1000);
                }


            }

            Console.WriteLine(" 点击 [enter] 结束本次对话。");

            Console.ReadLine();
        }

接收消息的代码:

   static void Main(string[] args)
        {

            var factory = new ConnectionFactory();
            factory.HostName = "127.0.0.1";//主机IP
            factory.UserName = "";//用户名
            factory.Password = "";//密码
            factory.Port = 5672; 
            using (var connection = factory.CreateConnection())
            {
                using (var channel = connection.CreateModel())
                { 
                    var consumer = new EventingBasicConsumer(channel);
                    channel.BasicConsume("HelloQueue", true, consumer);
                    consumer.Received += (model, ea) =>
                    {
                        var body = ea.Body;
                        var message = Encoding.UTF8.GetString(body);
                        Console.WriteLine("已接收: {0}", message);
                    };
                   
                }
            }
            Console.WriteLine(" 点击 [enter] 结束本次对话。");
            Console.ReadLine();
        }

记录一下rabbitmq的基本操作,如果还需要更复杂的生产环境就需要进一步去学习了,研究了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
C#发送RabbitMQ消息可以通过使用RabbitMQ客户端库来实现。下面是一个示例代码,展示了如何在C#发送RabbitMQ消息: ```csharp using RabbitMQ.Client; using System; using System.Text; class Program { static void Main(string[] args) { // 创建连接工厂 var factory = new ConnectionFactory() { HostName = "10.10.10.10", // RabbitMQ服务器的IP地址 UserName = "admin", // 用户名 Password = "adminPWD" // 密码 }; // 创建连接 using (var connection = factory.CreateConnection()) { // 创建通道 using (var channel = connection.CreateModel()) { // 声明队列 var queueName = "qTEST"; channel.QueueDeclare(queue: queueName, durable: true, exclusive: false, autoDelete: false, arguments: null); // 消息内容 var message = "hello123"; var body = Encoding.UTF8.GetBytes(message); // 发布消息到队列 channel.BasicPublish(exchange: "", routingKey: queueName, basicProperties: null, body: body); Console.WriteLine("消息发送:{0}", message); } } Console.WriteLine("点击 [enter 结束本次对话。"); Console.ReadLine(); } } ``` 请注意,上述代码中的`HostName`应该替换为你的RabbitMQ服务器的IP地址,`UserName`和`Password`应该替换为你的RabbitMQ服务器的用户名和密码。另外,你还可以根据需要修改队列的声明和消息发布的逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C#使用rabbitmq (简单例子)](https://blog.csdn.net/MFCdestoryer/article/details/125046944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [C# WPF RabbitMq收发消息实例解析](https://blog.csdn.net/weixin_68436326/article/details/129374016)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [C# rabbitMQ 接收消息发送消息](https://blog.csdn.net/i_qiangqiang/article/details/114707700)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值