gpt4 book ai didi

特定条件下的 JMS 与 Kafka

转载 作者:行者123 更新时间:2023-12-02 10:41:32 25 4
gpt4 key购买 nike

我正在阅读这两个概念。主要是卡夫卡。并与JMS进行比较以便更好地理解。

Kafka 保证有序交付和多个订阅者。 kafka是如何实现的?

Kafka 有多个分区。如果每个分区有一个消费者,那么我们可以保证排序。我们可以通过多个分区来实现负载均衡。所以同时两者是可能的。

对于 JMS,如果我们有多个队列,那和 Kafka 不一样吗?

Q1:在这种情况下哪个更好?

问题2:我的眼光是否狭隘? kafka 做的还不止这些吗?

请给我建议。

即使我对 JMS 的理解有误,也请告诉我。

最佳答案

我之前也问过自己同样的问题:)

正如您所写,Kafka 仅保证单个分区内的有序交付。时期。如果您使用多个分区(必须具有并行性),那么监听多个分区的使用者有可能先从分区 1 获取消息 A,然后再从分区 2 获取消息 B,即使消息 B 先到达.

现在,介绍一下 Kafka 和 JMS 之间的区别。在 JMS 中,您有一个队列和一个主题。使用队列,当第一个消费者消费一条消息时,其他消费者就无法再接受它了。对于主题,多个消费者接收每条消息,但扩展起来要困难得多。 Kafka 的消费者组是这两个概念的概括 - 它允许在同一消费者组的成员之间进行扩展,但它也允许在许多不同的消费者组之间广播相同的消息。

更重要的区别如下。想象一下,您的 Kafka 主题有 500 个分区,另一方面有 500 个 JMS 消息队列。我们还假设您有一定数量的生产者和消费者。对于 JMS,您需要配置每个队列,以便它们知道哪些队列属于它们。如果例如一些消费者崩溃或者您发现需要增加消费者数量?您必须手动重新配置整个系统。这是 Kafka 提供的免费功能,即 Kafka 提供自动重新平衡,这是一个非常有用的功能。

最后,Kafka 的速度要快得多,这主要是因为一些巧妙的磁盘/内存传输技术,并且因为消费者关心他们消费的消息,而不是像 JMS 中的代理那样。因此,消费者还可以“倒回”,即重新读取来自例如2 天前。

另请参阅:

关于特定条件下的 JMS 与 Kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42664894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com