RabbitMQ复习<二> 角色

RabbitMQ复习<二> 角色

  • RabbitMQ:http://www.rabbitmq.com/
    • 是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、C、用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不错,与SpringAMQP完美的整合、API丰富易用
    • 文档:https://www.rabbitmq.com/getstarted.html

**主要角色 **

  • 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相匹配时,消息会被路由到对应的队列中

你可能感兴趣的:(Java,MQ,队列,rabbitmq,java)