`
Franciswmf
  • 浏览: 780646 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Spring Cloud整合消息代理中间件

 
阅读更多
一、Spring Cloud整合RabbitMQ
1、参考博客:
https://blog.csdn.net/chengkui1990/article/details/80908405

2、
----消息代理中间件
消息代理:主要用于接收和转发消息;
举例:消息生产者-寄件人; 消息消费者-收件人;RabbitMQ等框架:邮箱、邮递员、邮局;
----RabbitMQ
2.1、特性
支持多种消息通信协议;如AMQP(高级消息队列协议 Advanced Message Queuing Protocol)
支持分布式部署;
支持运行于多个操作系统;
灵活、高可用;

2.2、AMQP的大致模型
生产者会将消息投递给“消息代理(RabbitMQ服务器)”,它们之间会建立消息通道(Channel),
消息由交换器(Exchange)先进行处理,交换器会选择把消息交给哪一个队列(Message Queue),
最后消息队列会将消息发给消费者。

2.3、相对于服务器来说,消息生产者与消费者都属于客户端,它们与服务器之间通过AMQP协议进行通信。AMQP不受语言的限制,客户端可以使用不同的编程语言实现。

2.4、RabbitMQ在设计上,生产者不会直接将消息发送给队列,它只会将消息发送给交换器,交换器一边从生产者接收消息,一边将消息发送给各个队列。

2.5、交换器与队列之间的连接叫作“绑定(binding)”。每一个绑定都有一个名字,叫做binding key。
当消息发送过来时,消息会带有一个路由标识,叫做routing key。
交换器会根据这两个值来决定将消息发给哪个队列。
2.6、四种类型的交换器
direct: 看生产者传过来的routing key是否等于binding key,来决定将消息传送给哪个队列。
topic: 看生产者传过来的routing key是否匹配一定的表达式,来决定将消息发送给哪个或者哪些队列。
fanout:将消息发送给交换器知道的全部队列,忽略设置的routing key。
headers:根据消息的头消息来决定将消息发送给哪个队列。


二、Spring Cloud整合Kafka
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics