暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

rabbitmq的介绍

180

官网: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


流程如下:

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



文章转载自梁霖编程工具库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论