2017-07-16 101 views
0

全部,原谅我我是一个新手,只是初学者Kafka。目前我正在阅读关于the difference between traditional message system like Active MQ and Kafka的文档Kafka卡夫卡消息处理如何在发布 - 订阅模式下扩展?

作为文件。

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

发布 - 订阅模式可以让你广播数据到多个进程,但 没有缩放处理的方式,因为每个消息发送到每一个 用户。

我觉得这对我有意义。

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

卡夫卡的消费群体概念概括了这两个概念。由于具有队列的 消费者组允许您在一组进程(消费者组的成员)上划分处理 。由于 与发布 - 订阅,卡夫卡允许您广播消息到 多个消费群体。

卡夫卡的模型的优点是,每个主题都有两种属性 - 它可扩展的处理,也是多用户 -there 是没有必要选择一个或另一个。

所以我的问题是如何Kafka使它?我的意思是在发布 - 订阅模式下缩放处理。谢谢。

回答

2

在卡夫卡的主要独特的功能,支持可扩展的pub/sub是:

  1. 分区个别主题和集群,以利用更多的机器,磁盘中分散在多个经纪人的活动分区,与高速缓存。生产者和消费者通常连接到集群中的许多或所有节点,而不仅仅是给定主题/队列的单个主节点。
  2. 将所有消息存储在顺序提交日志中,并且在使用时不删除它们。这会导致更多的顺序读取和写入,从而不必处理跟踪消息的不同副本,删除单个消息,处理碎片,跟踪哪些消费者已知消费哪些消息。
  3. 启用对单个消费者和消费者组的智能并行处理,使得每个并行消息流可以来自#1中提到的分布式分区,同时将偏移量管理和分区分配逻辑卸载到客户端本身。卡夫卡规模与更多的消费者,因为消费者做一些工作(不像大多数其他酒吧/子经纪人的大部分工作是在经纪人完成)
+0

感谢您的审查和回答问题。据我所知。传统的消息传递可以在集群模式下执行#1。对? (PS:我想弄明白Kafka比传统消息传递有什么优势。) –

+0

#2。如果代理未跟踪消息消息,则确认。 'Kafka'如何确保消息在处理过程中不会丢失?谢谢。 –

+0

不,传统消息传递即使在集群模式下也不会执行#1。如果消息是持久的,则传统消息将所有消息存储在单个主节点中(不分区),然后将整个消息存储复制到其他节点以实现容错。 –

相关问题