推广 热搜: 广场  Java  Word  app  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

怎样添加消息队列 消息总线和消息队列区别?

   2023-05-05 企业服务招财猫40
核心提示:消息总线和消息队列区别?消息总线包含多个消息队列,即接收到所有消息,内部逻辑决定推送到哪个消息队列。消息队列的发布订阅原理?订阅的原理是不同系统之间的重合。Java消息服务(JMS)应用程序接口是Ja

消息总线和消息队列区别?

消息总线包含多个消息队列,即接收到所有消息,内部逻辑决定推送到哪个消息队列。

消息队列的发布订阅原理?

订阅的原理是不同系统之间的重合。Java消息服务(JMS)应用程序接口是Java平台上关于消息中间件(MOM)的API,用于在两个应用程序之间或分布式系统中发送消息以进行异步通信。

对等订阅和发布订阅最初是由JMS定义的。两种模式的主要区别或者说要解决的问题是,发送到队列的消息是否可以重复消费(多订阅)。

1.定义

JMS规范目前支持两种消息模型:点对点(队列)和发布/订阅(主题)。

1.1.点对点:队列,不能重复消费。

消息生产者产生消息并将其发送到队列,然后消息消费者将消息从队列中取出并使用它们。

消息被消费后,队列中没有存储,所以消息消费者不可能消费已经消费的消息。队列支持多个使用者的存在,但是只有一个使用者可以使用一条消息。

1.2.发布/订阅:话题,可以反复消费。

消息生产者(发布者)将消息发布到主题,同时,多个消息消费者(订阅者)消费该消息。与对等模式不同,发布到主题的消息将由所有订阅者使用。

支持订阅组的发布-订阅模式:

在发布-订阅模式下,当发布者的消息量较大时,单个订阅者的处理能力明显不足。实际上,在真实场景中,多个订阅者节点组成一个订阅群来负载均衡话题消息的消费,即群订阅,这样订阅者就可以轻松实现消费力的线性膨胀。可以看到,一个主题下有多个队列,每个队列都是点对点的,队列都是发布订阅的。

2.差异

2.1.点对点模式

生产者向队列发送消息。一个队列可以有许多消费者,但是一条消息只能被一个消费者接受。当没有可用的消费者时,消息将被保存直到有可用的消费者,因此队列实现了可靠的负载平衡。

2.2.发布-订阅模式

发布者向主题发送的消息将仅由订阅主题的订阅者接收。话题实现发布和订阅。当您发布消息时,订阅该主题的所有服务都可以获得该消息,因此1到n个订阅者可以获得该消息的副本。

3.热门车型对比

传统的企业消息队列ActiveMQ遵循JMS规范,实现点对点。点和发布订阅模型,但是其他流行的消息队列RabbitMQ和Kafka不遵循JMS规范。

3.1、RabbitMQ

RabbitMQ实现了AQMP协议,该协议定义了消息路由的规则和方法。生产者通过路由规则将消息发送到不同的队列,消费者根据队列名称消费消息。

RabbitMQ支持内存队列和持久队列,消费者是一个推模型。服务器负责维护消费状态和订阅关系,消费后立即删除消息,不保留历史消息。

(1)点对点

生产者通过路由向队列发送消息,只有一个消费者可以消费它。

(2)更多订阅

当RabbitMQ需要支持多个订阅时,发布者发送的消息通过路由同时写入多个队列,不同的订阅组消耗不同的队列。因此,当支持多个订阅时,消息将被复制多次。

3.2、卡夫卡

Kafka只支持消息持久化,消费者是拉模型,客户端负责维护消费状态和订阅关系。消息消费后,不会立即删除,但会保留历史消息。因此,当支持多个订阅时,将只存储一条消息。但是可能会有重复消费。

(1)点对点amp多订阅

发布者在主题中生成一条消息,不同的订阅组使用这条消息。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8