rabbitmq的介绍

简介: rabbitMQ是一个开源的AMQP实现的消息队列中间件,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、C、 用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不错,与SpringAMQP完美的整合、API丰富易用。

公众号merlinsea


官网:http://www.rabbitmq.com/


   rabbitMQ是一个开源的AMQP实现的消息队列中间件,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、C、 用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不错,与SpringAMQP完美的整合、API丰富易用。


rabbitmq中的核心概念



Broker

       RabbitMQ的服务端程序,可以认为一个mq节点就是一个broker


Producer生产者

   创建消息Message,然后发布到RabbitMQ中


Consumer消费者

   消费队列里面的消息


Message 消息

   生产消费的内容,有消息头和消息体,也包括多个属性配置,比如routingKey路由键


Queue 队列

   是RabbitMQ 的内部对象,用于存储消息,消息都只能存储在队列中


Channel 信道

   一条支持多路复用的通道,独立的双向数据流通道,可以发布、订阅、接收消息。 信道是建立在真实的TCP连接内的虚拟连接,复用TCP连接的通道


Connection连接

   是RabbitMQ的socket链接,它封装了socket协议相关部分逻辑,一个连接上可以有多个channel进行通信


Exchange 交换器

   生产者将消息发送到 Exchange,交换器将消息路由到一个或者多个队列中,里面有多个类型,后续再一一介绍,队列和交换机 是多对多的关系。


RoutingKey 路由键

   生产者将消息发给交换器的时候,一般会指定一个RoutingKey,用来指定这个消息的路由规则,最大长度255 字节


Binding 绑定

   通过绑定将交换器与队列关联起来,在绑定的时候一般会指定一个绑定键 ( BindingKey ),这样 RabbitMQ 就知道如何正确 地将消息路由到队列了。 生产者将消息发送给交换器时,会给一个RoutingKey,当BindingKey和 RoutingKey相匹配时,消息会被路由到对应的队列中


Virtual host 虚拟主机

   用于不同业务模块的逻辑隔离,一个Virtual Host里面可以有若干个Exchange和Queue,同一个VirtualHost 里面不能有 相同名称的Exchange或Queue。 rabbimq的虚拟主机默认是 /,可以自己创建/dev ,/text ,/pro


流程如下:

   生产者将携带有路由键的消息投递给交换机, 交换机根据路由键和绑定键匹配来将消息投递给队列, 消费者监听到队列有消息就取出消息执行业务。


640.jpg




相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
|
消息中间件 网络性能优化 API
一文带大家快速掌握RabbitMQ!(三)
一文带大家快速掌握RabbitMQ!
|
4月前
|
消息中间件 存储 网络协议
RabbitMQ的使用
这篇文章详细介绍了RabbitMQ的消息中间件概念、核心组件、通过Docker的安装方法和基本使用步骤,并展示了如何在Spring Boot中整合RabbitMQ,包括依赖配置、消息的发送和接收示例。
RabbitMQ的使用
|
7月前
|
消息中间件 大数据 Java
RabbitMQ
RabbitMQ
99 1
|
7月前
|
消息中间件 存储 缓存
rabbitMQ
rabbitMQ
50 0
|
7月前
|
消息中间件 存储 中间件
精通 RabbitMQ 系列 01
精通 RabbitMQ 系列 01
67 0
|
7月前
|
消息中间件 存储 负载均衡
什么是RabbitMQ?
RabbitMQ是一个开源的消息代理软件,用于在分布式系统中传递消息。它实现了高级消息队列协议(AMQP),提供了一种可靠的、强大的、灵活的消息传递机制,使得不同应用程序或组件之间可以轻松地进行通信。
72 0
|
消息中间件 Java 关系型数据库
简单讲解RabbitMQ
简单讲解RabbitMQ
55 1
|
消息中间件 存储 JSON
关于RabbitMQ
MQ是一种应用程序键一步通讯的技术,MQ是消息队列的缩写(Message Queue) 在MQ中,消息由一个应用程序发送到一个称为队列的中间件中,接着被中间件存储,并最终被另一个或多个消费者应用程序读取和处理; MQ组成:消息——生产者——队列——中间件——消费者!
81 0
|
消息中间件 网络协议 Java
RabbitMQ(1)
RabbitMQ(1)
|
消息中间件 存储 网络协议
RabbitMQ(一)
RabbitMQ(一)
335 0
RabbitMQ(一)