我正在阅读这两个概念.主要是卡夫卡.并与JMS比较以更好地理解.
Kafka保证订购交付和多个订户.卡夫卡如何实现它?
Kafka有多个分区.如果每个分区有一个消费者,那么我们可以保证订购.我们可以通过多个分区实现负载均衡.所以两者同时是可能的.
在JMS的情况下,如果我们有多个队列,与Kafka不同?
Q1:在这种情况下哪个更好?
Q2:我看起来很狭窄吗?卡夫卡做的不仅仅是这个吗?
请建议我.
即使我对JMS有误,请告诉我.
Mil*_*kic 25
我之前问过自己同样的问题:)
正如您所写,Kafka保证仅在单个分区内订购.期.如果您正在使用多个分区(这是必须具有并行性),那么监听多个分区的消费者可能会在来自分区2的消息B之前从分区1获取消息A,即使消息B首先到达.
现在,关于Kafka和JMS之间的差异.在JMS中,您有一个队列,并且您有一个主题.对于队列,当第一个消费者消费消息时,其他消费者不再接受消息.通过主题,多个消费者可以收到每条消息,但扩展起来要困难得多.来自Kafka的消费者群体是这两个概念的概括 - 它允许在同一个消费者群体的成员之间进行缩放,但它也允许在许多不同的消费者群体之间广播相同的消息.
更重要的区别如下.想象一下,你有500个分区的Kafka主题,另一方面,有500个JMS消息队列.让我们想象一下,你有一定数量的生产者和消费者.在JMS的情况下,您需要配置它们中的每一个,以便它们知道哪些队列属于它们.如果某些消费者崩溃或您发现需要增加消费者数量,该怎么办?您必须手动重新配置整个系统.这与Kafka免费提供,即Kafka提供自动重新平衡,这是一个非常有用的功能.
最后,Kafka非常快,主要是因为一些聪明的磁盘/内存传输技术,并且因为消费者关心他们消费的消息,而不是JMS中的经纪人.因此,消费者也能够"倒带",即重读例如2天前的消息.
也可以看看:
归档时间: |
|
查看次数: |
13951 次 |
最近记录: |