前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于.NET的RabbitMQ消息通讯

基于.NET的RabbitMQ消息通讯

原创
作者头像
软件架构师Michael
发布2024-08-16 14:55:54
1110
发布2024-08-16 14:55:54

RabbitMQ是一种消息通讯机制,跟具体的编程语言无关。在企业级开发中,RabbitMQ是个常用的消息通讯机制。

通俗地讲,任何MQ都是一个临时存储消息的容器。

本文简单分享下基于.NET的RabbitMQ消息通讯。

废话不多说,直奔主题。上代码。

注意:实现需要引用RabbitMQ.Clinet程序集。

代码语言:csharp
复制
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System.Text;
namespace RabbitMQSend
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello RabbitMQ,生产者!");
            var factory = new ConnectionFactory()       // 创建连接工厂对象
            {
                HostName = "localhost",
                Port = 5672,
                UserName = "guest",
                Password = "guest"
            };
            var connection = factory.CreateConnection();    // 创建连接对象
            var channel = connection.CreateModel();         // 创建连接会话对象

            string queueName = "myqueue";

            // 声明一个队列
            channel.QueueDeclare(
                queue: queueName,   // 队列名称
                durable: false,     // 是否持久化,true持久化,队列会保存磁盘,服务器重启时可以保证不丢失相关信息
                exclusive: false,   // 是否排他,如果一个队列声明为排他队列,该队列仅对时候次声明它的连接可见,并在连接断开时自动删除
                autoDelete: false,  // 是否自动删除,自动删除的前提是:至少有一个消费者连接到这个队列,之后所有与这个队列连接的消费者都断开时,才会自动删除
                arguments: null     // 设置队列的其他参数
            );

            string str = string.Empty;

            do
            {
                Console.WriteLine("发送内容:");
                str = Console.ReadLine()!;

                // 消息内容
                byte[] body = Encoding.UTF8.GetBytes(str);

                // 发送消息
                channel.BasicPublish("", queueName, null, body);

                // Console.WriteLine("成功发送消息:" + str);
            } while (str.Trim().ToLower() != "exit");

            channel.Close();
            connection.Close();
        }
    }
}

【小结】

无论现实多么惨不忍睹,都要坚持日供一卒。持续沉淀自己,不断完善进步。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档