RabbitMQ 01

51 阅读2分钟

RabbitMQ day01

相关概念

20190610225910220.png RabbitMQ是一个生产者和消费者模型,主要负责接收、存储和转发消息。

生产者和消费者

  • Producer:生产者,就是投递消息的一方;
    • 生产者创建消息并发布到RabbitMQ,消息通常由消息体和标签组成,消息体保存要发布的实际信息,消息标签用于区分将消息发送给感兴趣的消费者。
  • Consumer:消费者,就是接收消息的一方;
    • 消费者需要连接到RabbitMQ服务器,并订阅到队列,消费者消费一条消息只是消费消息体,因为消息保存在队列时会丢弃消息标签,只保存消息体。
  • Broker:消息中间件的服务节点;
    • RabbitMQ Broker就是一个RabbitMQ服务节点。生产者将消息包装后发送到Broker中,消费者订阅Broker中的队列,接收生产者发送的消息。

队列

  • Queue:队列是RabbitMQ中的一个对象,用于存储消息。
    • 由生产者生产的消息最终会被投递到队列中,消费者可以从队列中获取消息,多个消费者可以订阅同一个队列。

交换器、路由键、绑定

  • Exchange:交换器,用于对生产者投递的消息进行路由。
    • 交换器可以将消息路由到一个或者多个队列中,对于不能进行路由的消息,可能会返回给生产者或者直接丢弃。
  • RoutingKey:路由键,交换器通过路由键确定将消息路由给哪一个队列。
    • 路由键需要与交换器的类型和绑定建同时使用才会生效。
  • Binding:绑定。
    • 通过绑定可以将交换器和队列关联起来,在绑定时都会指定一个绑定建,从而就能知道将消息路由给哪一个队列。

交换器类型

  • fanout
    • 把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中。
  • direct
    • 会把消息发送到BindingKeyRoutingKey相同的队列中。
  • topic
    • direct类型类似,支持模糊匹配。
  • headers
    • 不通过路由键和匹配建进行路由,通过消息内容的headers属性进行配置。

信道

  • channel

    • 使用信道的目的是为了对减少网络开销,节省TCP资源。