RabbitMQ

  1. 信道(channel):信道是消息的生产者、消费者和服务器之间进行通信的虚拟连接。为什么叫"虚拟连接"?因为TCP连接的建立是非常消耗资源的,所以RabbitMQ在TCP连接的基础上构建了虚拟信道。我们尽量重复使用TCP连接,而信道是可以用完就关闭的
  2. 队列(queue):队列是用来进行消息收发的地方,生产者把消息放到队列中,消费者从队列中获取消息。
  3. 交换机(exchange):交换机用于把消息路由到一个或者多个队列中。

routing模式:

在这种模式中,生产者把消息发布到交换机中,消息会携带routingKey属性,交换机会根据routingKey的值把消息发送到一个或者多个队列;消费者会从队列中获取消息;交换机和队列都位于RabbitMQ服务器内部。这种模式的优点在于,即使消费者不在线,消费者相关的消息也会保存到队列中,当消费者上线后,就可以获取离线期间错过的消息。我们知道,在软件系统中,消息的生产者和消费者都不可能24小时在线,这种模式可以保证消费者收到因为服务器重启等原因而错过的消息。

相关推荐
小江的记录本7 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
LabVIEW开发14 小时前
LabVIEW水力机组空蚀在线监测
算法·labview·labview知识·labview功能·labview程序
身如柳絮随风扬14 小时前
多数据源切换实战:从业务场景到3种实现方案全解析
java·分布式·微服务
AIMath~16 小时前
雪花算法+ZooKeeper解决方案+RPC是什么
分布式·zookeeper·云原生
KmSH8umpK16 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第六篇
数据库·redis·分布式
空中海17 小时前
Kafka :存储、复制与可靠性
分布式·kafka·linq
渣渣盟17 小时前
构建企业级实时数据管道:Kafka + Flink 最佳实践
分布式·flink·kafka
LabVIEW开发18 小时前
LabVIEW结合数字孪生的动态仿真
labview·labview知识·labview功能·labview程序
KmSH8umpK18 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第四篇
数据库·redis·分布式
KmSH8umpK19 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第五篇
数据库·redis·分布式