消息队列RabbitMQ简介

发布时间 2023-12-27 00:44:46作者: Crazy_Joker

大家好,我是joker,希望你快乐。

RabbitMQ是什么

RabbitMQ是基于AMQP(Advanced Message Queue Protocol)高级消息队列协议实现的一种消息队列。

重要组件

  • Exchange: message 到达MQ的第一站,根据分发规则,配查询表中的 routing key,分发消息到queue 中去。常用的类型有: fanout、direct、topic

  • Queue: 消息最终被送到这里等待 consumer 取走

  • Binding: exchange 和 queue 之间的虚拟连接,binding 中可以包含 routing key。Binding 信息被保存到 exchange中的查询表中,用于 message 的分发依据

Exchange类型

灵活度越来越高

  • fanout

    广播交换器,当你发送一条消息到fanout交换器时,它会把消息投递给所有附加在此交换器上的队列

  • direct

    直连交换器,根据绑定routing_key投递到相应队列。

  • topic

    主题交换器,可以使用,#通配符。代表一个单词,#代表0个或多个单词

    * (star) can substitute for exactly one word.

    (hash) can substitute for zero or more words.

    当一个队列以”#”作为绑定键时,它将接收所有消息,而不管路由键如何,类似于fanout型交换器。

    当特殊字符”*”、”#”没有用到绑定时,topic型交换器就好比direct型交换器了。

更详细的说明可以查看RabbitMQ Tutorials — RabbitMQ