消息交换模式RabbitMQ简介

 更新时间:2022年07月02日 15:33:04   作者:天方  
这篇文章简单介绍了消息交换模式RabbitMQ,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

RabbitMQ是AMQP的一个典型实现,它消息发布者的消息发布到Exchange上,同时需要制定routingkey,可以通过指定交换机的不同模式实现不同的行为。

RabbitMQ提供了四种Exchange:fanout,direct,topic和header。其中header模式在实际使用中较少,本文只对前三种模式进行比较。

Direct模式(点对点通讯):

Direct Exchange是RabbitMQ默认的交换机模式,也是最简单的模式,根据key全文匹配去寻找队列。规则如下:

发布到exchange的消息通过routingkey的完全匹配发布到queue上。如果routingkey不存在,则丢弃

点对点方式是最为传统和常见的通讯方式,它支持一对一、一对多、多对多、多对一等多种配置方式,支持树状、网状等多种拓扑结构。

fanout模式(多点广播):

fanout模式比较简单,广播式的,无视routingkey直接发送给所有的queue

Topic模式(发布/订阅):

任何发送到Topic Exchange的消息都会被转发到所有关心RouteKey中指定话题的Queue上

  • 这种模式较为复杂,简单来说,就是每个队列都有其关心的主题,所有的消息都带有一个"标题"(RouteKey),Exchange会将消息转发到所有关注主题能与RouteKey模糊匹配的队列。

  • 这种模式需要RouteKey,也许要提前绑定Exchange与Queue。

  • 在进行绑定时,要提供一个该队列关心的主题,如"#.log.#"表示该队列关心所有涉及log的消息(一个RouteKey为"MQ.log.error"的消息会被转发到该队列)。

  • "#"表示0个或若干个关键字,""表示一个关键字。如"log."能与"log.warn"匹配,无法与"log.warn.timeout"匹配;但是"log.#"能与上述两者匹配。

  • 同样,如果Exchange没有发现能够与RouteKey匹配的Queue,则会抛弃此消息。

到此这篇关于消息交换模式RabbitMQ的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 本地搭建DeepSeek-R1、WebUI的完整过程及访问

    本地搭建DeepSeek-R1、WebUI的完整过程及访问

    这篇文章主要介绍了本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主要用于大语言模型的本地部署和管理,通过Docker和Ollama工具,用户可以在自己的服务器上运行DeepSeek-R1,并通过WebUI交互和测试,需要的朋友可以参考下
    2025-02-02
  • 一文了解文档写作利器 Markdown

    一文了解文档写作利器 Markdown

    这篇文章主要介绍了一文了解文档写作利器 Markdown,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-04-04
  • 都2019年了,还问http中GET和POST的区别

    都2019年了,还问http中GET和POST的区别

    最近看了一些同学的面经,发现无论什么技术岗位,还是会问到 get 和 post 的区别,而搜索出来的答案并不能让我们装得一手好逼,那就让我们从 HTTP 报文的角度来撸一波,从而搞明白他们的区别
    2019-02-02
  • kettle 入门使用教程(最新版)

    kettle 入门使用教程(最新版)

    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定,本文以7.0.0.0-25版本为例给大家详细讲解下载安装入门级教程,感兴趣的朋友一起看看吧
    2022-11-11
  • deepseek本地部署使用步骤详解

    deepseek本地部署使用步骤详解

    DeepSeek是一个开源的深度学习模型,支持自然语言处理和推荐系统,本地部署步骤包括克隆仓库、创建虚拟环境、安装依赖、配置模型和数据、启动服务、调试与优化以及使用接口进行调用,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • git工作区暂存区与版本库基本理解及提交流程全解

    git工作区暂存区与版本库基本理解及提交流程全解

    这篇文章主要为大家介绍了git工作区暂存区与版本库基本理解及提交流程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-04-04
  • 详解使用内网穿透工具Ngrok代理本地服务

    详解使用内网穿透工具Ngrok代理本地服务

    本文主要介绍了使用内网穿透工具Ngrok代理本地服务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Elasticsearch的删除映射类型操作示例

    Elasticsearch的删除映射类型操作示例

    这篇文章主要为大家介绍了Elasticsearch的删除映射类型操作示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • 图像检索之IF-IDF,RootSift,VLAD

    图像检索之IF-IDF,RootSift,VLAD

    TF-IDF是一种用于信息检索的常用加权技术,在文本检索中,用以评估词语对于一个文件数据库中的其中一份文件的重要程度,本文给大家介绍下图像检索之IF-IDF,RootSift,VLAD的相关知识,感兴趣的朋友一起看看吧
    2021-12-12
  • csv文件容错处理方法

    csv文件容错处理方法

    这篇文章主要介绍了csv文件容错处理方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07

最新评论