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管理可以看到内容

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

本文转自博客园张占岭(仓储大叔)的博客,原文链接:RabbitMQ~一些术语和最消息的生产,如需转载请自行联系原博主。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
8月前
|
消息中间件 存储 NoSQL
RocketMQ实战—6.生产优化及运维方案
本文围绕RocketMQ集群的使用与优化,详细探讨了六个关键问题。首先,介绍了如何通过ACL配置实现RocketMQ集群的权限控制,防止不同团队间误用Topic。其次,讲解了消息轨迹功能的开启与追踪流程,帮助定位和排查问题。接着,分析了百万消息积压的处理方法,包括直接丢弃、扩容消费者或通过新Topic间接扩容等策略。此外,提出了针对RocketMQ集群崩溃的金融级高可用方案,确保消息不丢失。同时,讨论了为RocketMQ增加限流功能的重要性及实现方式,以提升系统稳定性。最后,分享了从Kafka迁移到RocketMQ的双写双读方案,确保数据一致性与平稳过渡。
|
8月前
|
消息中间件 Java 测试技术
RocketMQ实战—7.生产集群部署和生产参数
本文详细介绍了RocketMQ生产集群的部署与调优过程,包括集群规划、环境搭建、参数配置和优化策略。
RocketMQ实战—7.生产集群部署和生产参数
|
消息中间件 网络协议 RocketMQ
消息队列 MQ产品使用合集之broker开启proxy,启动之后producer生产消息始终都只到一个broker,该怎么办
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
消息中间件 Java
Java操作RabbitMQ单一生产-消费者模式
Java操作RabbitMQ单一生产-消费者模式
165 0
|
消息中间件 Java Maven
Java整合RabbitMQ实现生产消费(7种通讯方式)
Java整合RabbitMQ实现生产消费(7种通讯方式)
528 0
|
消息中间件 存储 安全
|
消息中间件 Java Spring
一文看懂Spring Boot整合Rabbit MQ实现多种模式的生产和消费
一文看懂Spring Boot整合Rabbit MQ实现多种模式的生产和消费
1337 0
|
消息中间件 中间件 Kafka
RocketMQ源码(一)RocketMQ消息生产及消费通信链路源码分析
**RocketMQ**的核心架构主要分为Broker、Producer、Consumer,通过阅读源码看到他们之间是通过Netty来通信的 ,具体来说Broker端是**Netty服务器**用来负责与客户端的连接请求处理,而Producer/Consumer端是**Netty客户端**用来负责与Netty服务器的通信及请求响应处理。
388 1
|
消息中间件 存储 安全
Java整合RocketMQ实现生产消费
Java整合RocketMQ实现生产消费
842 0
|
存储 消息中间件 Cloud Native
RocketMQ 消息收发弹性--生产集群如何解决大促场景消息收发的弹性&降本诉求|学习笔记
快速学习 RocketMQ 消息收发弹性--生产集群如何解决大促场景消息收发的弹性&降本诉求
340 0
RocketMQ 消息收发弹性--生产集群如何解决大促场景消息收发的弹性&降本诉求|学习笔记