java+kafka和activemq_对比平台--ActiveMQ Vs Kafka

ActiveMQ和Kafka简介

Apache ActiveMQ是基于Java的开源多协议消息传递服务器。它实现了JMS(Java消息服务)API,并且能够支持各种消息传递协议,包括AMQP,STOMP和MQTT。它通常用于在应用程序/服务之间发送消息。在本主题中,我们将学习ActiveMQ vs Kafka。

另一方面,Apache Kafka是由LinkedIn开发的开源流处理软件(后来捐赠给Apache),用于有效地管理其不断增长的数据并从批处理切换到实时处理。它使用Scala和Java编写,并基于消息的发布-订阅模型。

ActiveMQ和Kafka之间的主要区别

ActiveMQ和Kafka设计用于不同的目的。以下是主要区别:

Kafka是提供高水平可伸缩性的分布式流媒体平台。另外,它提供了高吞吐量,这就是为什么它用于实时数据处理。ActiveMQ是支持各种消息传递协议的通用消息传递解决方案。Kafka比ActiveMQ快得多。它每秒可以处理数百万条消息。

ActiveMQ支持消息队列和发布/订阅消息传递系统。另一方面,Kafka基于发布/订阅,但确实具有消息队列的某些优点。

ActiveMQ保证将传递一条消息,但是对于Kafka,很有可能(但是低)一条消息可能不会传递。

在以下情况下,Kafka中的消息可能会丢失:

它可能在并行使用消息时发生。考虑一种情况,其中有两条消息发送给使用者:X和Y。这两个消息是并行处理的。在处理消息时,Y成功并提交了偏移量。但是,在处理消息时,X产生了错误。考虑到消息B的偏移量较大,Kafka将保存最新的偏移量,并且消息A永远不会返回给使用者。

与在Kafka中相比,在ActiveMQ中实施完全一次消息传递要容易得多。在以下情况下,卡夫卡中的重复邮件传递可能会发生:

使用者已经成功使用了消息,然后将消息提交到其本地存储,但是它崩溃了,无法在偏移发生之前将偏移量提交给Kafka。使用者重新启动时,Kafka将从上一个偏移量开始传递消息。

在Kafka中,消息基本上是键值对。消息的有效负载就是值。另一方面,密钥通常用于分区目的,并且必须包含特定于业务的密钥,以便将相关消息放置在同一分区上。

在ActiveMQ中,消息由元数据(标头和属性)和主体(有效负载)组成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值