Skip to content

rabbitmq

推荐的学习文章:https://blog.csdn.net/lzx1991610/article/details/102970854

五种队列

  1. Direct Exchange(直连交换机):Direct Exchange 是最简单的一种交换机类型,它会根据消息的 routing key 将消息路由到指定的队列。当一个队列绑定到 Direct Exchange 上时,需要指定一个 routing key,只有当消息的 routing key 与队列绑定时指定的 routing key 相同时,消息才会被投递到该队列。

  2. Fanout Exchange(广播交换机):Fanout Exchange 将收到的所有消息广播到所有与之绑定的队列上,忽略消息的 routing key。如果你希望消息能够被多个队列同时接收,可以使用 Fanout Exchange。

  3. Topic Exchange(主题交换机):Topic Exchange 可以根据消息的 routing key 和通配符模式将消息路由到一个或多个队列。通配符模式包括 *(匹配一个单词)和 #(匹配零个或多个单词),允许实现更灵活的消息路由规则。

  4. Headers Exchange(头部交换机):Headers Exchange 使用消息的 header 属性来决定消息的路由规则,而不是像其他交换机那样使用 routing key。通过设置消息的 header 属性,可以定义复杂的消息路由规则。

  5. Dead-Letter Exchange(死信交换机):Dead-Letter Exchange 不是一种独立的交换机类型,而是一种特殊的交换机配置。当消息变成“死信”(无法路由到目标队列或超时等情况)时,可以将这些消息重新发送到另一个交换机,这就是 Dead-Letter Exchange 的作用。

六种消息队列模式

  1. 点对点模式(Point-to-Point):也称为队列模式,消息生产者发送消息到队列,然后消息消费者从队列中接收并处理消息。每条消息只会被一个消费者接收,保证了消息的独占性。

  2. 发布/订阅模式(Publish/Subscribe):消息生产者将消息发布到交换机(Exchange),交换机将消息广播到所有与之绑定的队列上,消息消费者可以同时订阅多个队列来接收消息。

  3. 主题模式(Topic):主题模式是发布/订阅模式的扩展,它允许消息生产者定义更复杂的消息路由规则,消息消费者可以使用通配符匹配来接收感兴趣的消息。

  4. 工作队列模式(Work Queues):也称为任务队列模式,多个消费者竞争接收来自同一个队列的消息。消息会被平均分配给多个消费者进行处理,确保消息的负载均衡。

  5. 路由模式(Routing):消息生产者根据消息的路由键将消息发送到交换机,交换机根据预先设定的路由规则将消息路由到指定的队列中,实现精确的消息路由控制。

  6. 确认模式(Confirm):确认模式用于消息的可靠传递,在消息生产者发送消息后,可以等待消息代理(Broker)返回确认信息,确保消息已经被正确地接收和处理。