ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HM-SpringCloud微服务系列4.3.3【发布/订阅模型】

2022-01-27 23:02:13  阅读:176  来源: 互联网

标签:4.3 Exchange 队列 SpringCloud 绑定 交换机 消息 HM 路由


1 发布/订阅模型简介

image

  1. 可以看到,在订阅模型中,多了一个exchange角色,而且过程略有变化:
    • Publisher:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是exchange交换机
    • Exchange:交换机。一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于Exchange的类型。Exchange有以下3种类型:
      • Fanout:广播,将消息交给所有绑定到交换机的队列
      • Direct:定向,把消息交给符合指定routing key 的队列
      • Topic:通配符,把消息交给符合routing pattern(路由模式) 的队列
    • Consumer:消费者,与以前一样,订阅队列,没有变化
    • Queue:消息队列也与以前一样,接收消息、缓存消息。
  2. Exchange(交换机)只负责转发消息,不具备存储消息的能力,因此如果没有任何队列与Exchange绑定,或者没有符合路由规则的队列,那么消息会丢失!

2 Fanout-Exchange广播交换机

小结

  1. 交换机的作用是什么?
    • 接收publisher发送的消息
    • 将消息按照规则路由到与之绑定的队列
    • 不能缓存消息,路由失败,消息丢失
    • FanoutExchange的会将消息路由到每个绑定的队列
  2. 声明队列、交换机、绑定关系的Bean是什么?
    • Queue
    • FanoutExchange
    • Binding

3 Direct-Exchange定向交换机

小结

  1. 描述下Direct交换机与Fanout交换机的差异?
    • Fanout交换机将消息路由给每一个与之绑定的队列
    • Direct交换机根据RoutingKey判断路由给哪个队列
    • 如果多个队列具有相同的RoutingKey,则与Fanout功能类似
  2. 基于@RabbitListener注解声明队列和交换机有哪些常见注解?
    • @Queue
    • @Exchange

4 Topic-Exchange通配符交换机

小结

  1. 描述下Direct交换机与Topic交换机的差异?
    • Topic交换机接收的消息RoutingKey必须是多个单词,以 **.** 分割
    • Topic交换机与队列绑定时的bindingKey可以指定通配符
    • #:代表0个或多个词
    • *:代表1个词

标签:4.3,Exchange,队列,SpringCloud,绑定,交换机,消息,HM,路由
来源: https://www.cnblogs.com/yppah/p/15851452.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有