Apache kafka Kafka消息处理在发布-订阅模式下如何扩展?

Apache kafka Kafka消息处理在发布-订阅模式下如何扩展?,apache-kafka,Apache Kafka,好吧,原谅我,我是个新手,只是卡夫卡的初学者。目前我正在阅读关于卡夫卡的文件 正如文件所说 对于传统的消息系统。它们无法扩展消息处理。 自 发布-订阅允许向多个进程广播数据,但 无法扩展处理,因为每条消息都会发送到每个 订户 我认为这对我来说是有意义的 但是对于卡夫卡。文档中说,卡夫卡可以扩展消息处理,即使在发布-订阅模式下也是如此。(如果我错了,请纠正我。谢谢。) 卡夫卡的消费群体概念概括了这两个概念。作为 使用队列,消费者组允许您划分处理 在一组流程(消费者组的成员)上。作为 通过publi

好吧,原谅我,我是个新手,只是卡夫卡的初学者。目前我正在阅读关于卡夫卡的文件

正如文件所说

对于传统的消息系统。它们无法扩展消息处理。 自

发布-订阅允许向多个进程广播数据,但 无法扩展处理,因为每条消息都会发送到每个 订户

我认为这对我来说是有意义的

但是对于卡夫卡。文档中说,卡夫卡可以扩展消息处理,即使在发布-订阅模式下也是如此。(如果我错了,请纠正我。谢谢。)

卡夫卡的消费群体概念概括了这两个概念。作为 使用队列,消费者组允许您划分处理 在一组流程(消费者组的成员)上。作为 通过publish-subscribe,Kafka允许您向用户广播消息 多个消费群体

卡夫卡模式的优势在于,每个主题都有这两个方面 属性-它可以扩展处理,并且是多用户的 不需要选择其中一个


所以我的问题是卡夫卡是如何做到的?我的意思是在发布-订阅模式下扩展处理。谢谢。

卡夫卡中支持可伸缩发布/订阅的主要独特功能包括:

  • 对单个主题进行分区,并将活动分区分布到集群中的多个代理上,以利用更多的机器、磁盘和缓存。生产者和消费者通常连接到集群中的许多或所有节点,而不仅仅是给定主题/队列的单个主节点
  • 将所有消息存储在顺序提交日志中,并在使用时不删除它们。这将导致更多的顺序读写,使代理不再需要处理跟踪消息的不同副本、删除单个消息、处理碎片、跟踪哪个消费者已确认使用了哪些消息
  • 以一种方式实现单个消费者和消费者组的智能并行处理,即每个并行消息流可以来自#1中提到的分布式分区,同时将偏移管理和分区分配逻辑卸载到客户端本身。卡夫卡的规模扩大到更多的消费者,因为消费者做了一些工作(不像大多数其他酒吧/分店经纪人,大部分工作是在经纪人中完成的)

  • 卡夫卡中支持可伸缩发布/订阅的主要独特功能包括:

  • 对单个主题进行分区,并将活动分区分布到集群中的多个代理上,以利用更多的机器、磁盘和缓存。生产者和消费者通常连接到集群中的许多或所有节点,而不仅仅是给定主题/队列的单个主节点
  • 将所有消息存储在顺序提交日志中,并在使用时不删除它们。这将导致更多的顺序读写,使代理不再需要处理跟踪消息的不同副本、删除单个消息、处理碎片、跟踪哪个消费者已确认使用了哪些消息
  • 以一种方式实现单个消费者和消费者组的智能并行处理,即每个并行消息流可以来自#1中提到的分布式分区,同时将偏移管理和分区分配逻辑卸载到客户端本身。卡夫卡的规模扩大到更多的消费者,因为消费者做了一些工作(不像大多数其他酒吧/分店经纪人,大部分工作是在经纪人中完成的)

  • 感谢您的审阅并回答问题。我知道。传统的消息传递可以通过集群模式完成#1。正确的?(附言:我正试图弄清楚
    Kafka
    与传统信息相比有什么优势。)。如果代理未跟踪消息,则表示已确认。如何确保信息在处理过程中不会丢失?谢谢。不,即使在群集模式下,传统的消息传递也不行。如果消息是持久的,那么传统的消息将所有消息存储在一个主节点中(无分区)然后将整个消息存储复制到其他节点以实现容错。对于#2,客户端负责跟踪其偏移量,并且可以选择将其存储回特殊的偏移量跟踪主题。这是否意味着传统消息系统即使在集群中也无法实现负载平衡?只有高可用性?谢谢。谢谢你的复习和回答问题。我知道。传统的消息传递可以通过集群模式完成#1。正确的?(附言:我正试图弄清楚
    Kafka
    与传统信息相比有什么优势。)。如果代理未跟踪消息,则表示已确认。如何确保信息在处理过程中不会丢失?谢谢。不,即使在群集模式下,传统的消息传递也不行。如果消息是持久的,那么传统的消息将所有消息存储在一个主节点中(无分区)然后将整个消息存储复制到其他节点以实现容错。对于#2,客户端负责跟踪其偏移量,并且可以选择将其存储回特殊的偏移量跟踪主题。这是否意味着传统消息系统即使在集群中也无法实现负载平衡?只有高可用性?谢谢