RabbitMQ~一些术语和最消息的生产

学习一种技术需要先了解它,而想要学好一种技术,需要更多的了解它的组成,原理和实现机制!

RabbitMQ安装介绍

  1. RabbitMQ是由erlang语言开发的,所以必须先有安装erlang,类似java安装
  2. RabbitMQ是C/S模式的,所以安装rabbitMQ服务器,默认端口5672
  3. 提供了Web管理界面(默认端口15672),直接通过安装插件的方式开启它

RabbitMQ的一些术语

  1. Server(broker): 接受客户端连接,实现AMQP消息队列和路由功能的进程。
  2. Virtual Host:其实是一个虚拟概念,类似于权限控制组,一个Virtual Host里面可以有若干个Exchange和Queue,但是权限控制的最小粒度是Virtual Host
  3. Producer: 消息生产者
  4. Consumer: 消息消费者
  5. Queue: 存储消息的队列容器
  6. Message: 消费者真正需要的消息数据
  7. Connection: 一个tcp连接,相对比较耗资源
  8. Channel: 一个管道连接,是tcp连接内的连接(broker),使用现有的TCP连接进行数据传输
  9. Exchange: 消息路由,生产者发送消息并不是直接发送到队列中的而是先到指定方式路由中,然后由路由根据路由key绑定的队列发送到指定队列中(某种算法求出对应的queue,如对消息取模)。
  10. Binding:对路由与队列容器的绑定关系
  11. Routing key: 路由键,主要用来寻找队列queue
  12. AMQP: 高级消息队列协议,RabbitMQ是基于此协议实现的
  13. Users: RabbitMQ服务是基于C/S模式,通常连接都需要认证,就是设置密码

一个最纯粹的消息生产者

复制代码
            ConnectionFactory factory = new ConnectionFactory();//创建连接工厂对象
            factory.HostName = "localhost";//指定主机名
            //factory.Port = 5672;//指定端口号
            //factory.VirtualHost = "amqp://localhost:5672";//指定RabbitMQ服务器的虚拟主机
            //factory.UserName = "";//指定连接用户名
            //factory.Password = "";//指定连接用户密码
            var conn = factory.CreateConnection();//创建连接
            var channel = conn.CreateModel();//建立管道
            channel.QueueDeclare("lind", false, false, false, null);
            channel.BasicPublish(
                exchange:
"",
                routingKey: "lind",
                basicProperties: null,
                body: Encoding.UTF8.GetBytes("Hello Lind!"));
复制代码

上面代码是一个主机为localhost的rabbitmq服务器的lind队列发送一条消息,内容为Hello Lind!

通过web管理可以看到内容

感谢各位对消息中间件的支持,下一讲我们将介绍如何去消费消息!

posted @   张占岭  阅读(774)  评论(0编辑  收藏  举报
编辑推荐:
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
阅读排行:
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(4)
· langchain0.3教程:从0到1打造一个智能聊天机器人
· 2025成都.NET开发者Connect圆满结束
历史上的今天:
2013-02-27 爱上MVC3~将系统的路由设置抽象成对象吧
2012-02-27 你必须要知道的架构知识~目录
2012-02-27 EF架构——code first开发中,在修改实体时,自动影响到数据表上
点击右上角即可分享
微信分享提示