RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较

  • RabbitMQ中,除了Simple Queue和Work Queue之外的所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储。
  • RabbitMQ提供了四种Exchange:fanout,direct,topic,header
  • header模式在实际使用中较少
  • **性能排序:fanout>direct>>topic。比例大约为11:10:6

    Direct Exchange

  • 任何发送到Direct Exchange的消息都会被转发到RouteKey中指定的queue
    1. 一般情况下可以使用rabbitMQ自带的Exchange:“”(该Exchange的名字为空字符串,下文称其为defaultExchange)。
    2. 这种模式下不需要将Exchange进行任何绑定(binding)操作。
    3. 消息传递时需要一个“RouteKey(其实是QueueName)”,可以简单的理解为要发送的队列名字。相当于上面提到的Simple Queue和Work Queue.
    4. 如果vhost中不存在RouteKey中指定的队列名,则该消息被抛弃。

      Fanout Exchange

  • 任何发送到Fanout Exchange的消息都会被转发到与该Exchange绑定(Binding)的Queue上
    1. 可以理解为路由表的模式
    2. 这种模式不需要RouteKey
    3. 这种模式需要提前将Exchange与Queue进行绑定,一个Exchange可以绑定多个Queue,一个Queue可以同多个Exchange进行绑定
    4. 如果接受消息的Exchange没有和任何Queue绑定,则消息被抛弃

Topic Exchange

  • 任何发送到Topic Exchange的消息都会被转发到所有关心RouteKey中指定话题的Queue上
    1. 这种模式较为复杂,简单来说,就是每个队列都有其关心的主题(通过BindingKey来说明),所有的消息都带有一个“标题”(Route Key),Exchange会将消息转发到所有关注主题能够和RouteKey模糊匹配的队列。匹配规则使用通配符“#”和“*”。
    2. 这种模式需要RouteKey,也要提前绑定Exchange与Queue。绑定之后Exchange才能够判断队列关心的主题是否与RouteKey匹配。
    3. 在进行绑定时,需要提供一个该队列关系的主题,如“#.log.#”表示该队列关系所有涉及log的消息(一个RouteKey为“MQ.log.error”的消息就会被转发给该队列)
    4. 同样,如果Exchange没有任何发现能够与RouteKey匹配的Queue,则会抛弃该消息。
  • 引用自RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较

8、RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较的更多相关文章

  1. RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较

    RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四种Exchange:fanout,direct, ...

  2. RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较(转)

    RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四种Exchange:fanout,direct, ...

  3. [转]RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较

    RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四种Exchange:fanout,direct, ...

  4. RabbitMQ三种Exchange模式(fanout,direct,topic)的特性 -摘自网络

    RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四种Exchange:fanout,direct, ...

  5. RabbitMQ三种Exchange模式

    RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四种Exchange:fanout,direct, ...

  6. 【转】RabbitMQ三种Exchange模式

    [转]RabbitMQ三种Exchange模式 RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四 ...

  7. 【RabbitMQ】三种类型交换器 Fanout,Direct,Topic(转)

    出处:https://blog.csdn.net/fxq8866/article/details/62049393 RabbitMQ服务器会根据路由键将消息从交换器路由到队列中,如何处理投递到多个队列 ...

  8. RabbitMQ : 几种Exchange 模式

    AMQP协议中的核心思想就是生产者和消费者隔离,生产者从不直接将消息发送给队列.生产者通常不知道是否一个消息会被发送到队列中,只是将消息发送到一个交换机.先由Exchange来接收,然后Exchang ...

  9. 【RabbitMQ】4、RabbitMQ几种Exchange 模式

    AMQP协议中的核心思想就是生产者和消费者隔离,生产者从不直接将消息发送给队列.生产者通常不知道是否一个消息会被发送到队列中,只是将消息发送到一个交换机.先由Exchange来接收,然后Exchang ...

随机推荐

  1. 02-webpack的基本配置-运行webpack

    1安装webPack的方式 第一次全局安装 npm i webpack -g 第一次安装了之后以后就不需要在安装了 在项目根录中运行 npm i webpack --save-dev 安装到项目依赖中 ...

  2. 201271050130-滕江南-《面向对象程序设计(java)》第十三周学习总结

      201271050130-滕江南-<面向对象程序设计(java)>第十三周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daiz ...

  3. Open3D-PointNet2-Semantic3D-master的运行

    1.修改download_semantic3d.sh文件 #!/bin/bash ans=`dpkg-query -W p7zip-full` if [ -z "$ans" ]; ...

  4. hdu6494 dp

    http://acm.hdu.edu.cn/showproblem.php?pid=6494 题意 一个长n字符串(n,1e4),'A'代表A得分,'B'代表B得分,'?'代表不确定,一局比赛先得11 ...

  5. Nginx的性能优化方案

    nginx的优化 . gzip压缩优化 . expires缓存有还 . 网络IO事件模型优化 . 隐藏软件名称和版本号 . 防盗链优化 . 禁止恶意域名解析 . 禁止通过IP地址访问网站 . HTTP ...

  6. git操作记录(如何回退到某个历史版本,如何提交部分文件等方法)

    当前项目使用git管理代码,在使用的过程中会遇到一些问题,这里记录下 1.合并代码后 在合并组员的代码后会出现下面的界面,开始的时候都会关闭,重新打开,乐此不疲到忍无可忍 解决方法: 出现这种界面是要 ...

  7. CSS的基础学习

    CSS学习 --------学习资源 http://www.csszengarden.com/ CSS语法检查http://jigsaw.w3.org/css-validator/ 配置CSS的方法: ...

  8. Python sorted 函数

    Python sorted 函数 sorted 可以对所有可迭代的对象进行排序操作,sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作.从新排序列表. sorted 语法: ...

  9. 升级 ASP.NET Core 3.0 设置 JSON 返回 PascalCase 格式与 SignalR 问题

    由于一些 JS 组件要求 JSON 格式是 PascalCase 格式,新版本 ASP.NET Core 3.0 中默认移除了 Newtonsoft.Json ,使用了微软自己实现的 System.T ...

  10. RFC的远程调用-异步

    接上篇RFC的远程调用-同步(https://www.cnblogs.com/BruceKing/p/11169930.html). TABLES:USR21. DATA:A TYPE USR21-P ...