Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge branch 'master' of github.com:docs2cn/apache-kafka-docs
  • Loading branch information
diguage committed Oct 7, 2014
commit 22c2ec687400241eed4c463a0207833764a4cec2
12 changes: 11 additions & 1 deletion index.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,14 @@ Kafka集群在在一段时间之内,将保留所有发布过的消息,无论

如果所有的消费者拥有不同的消费者组,那么他们的工作方式就像是“发布-订阅”,所有的消息都广播给所有的消费者。

通常,我们发现,主题有少数的消费者组,每一个都是一个“逻辑上的订阅(logical subscriber)”。每组都有多个消费者实例组成,这样更有利于可扩展性和容错。
通常,我们发现,主题有少数的消费者组,每一个都是一个“逻辑上的订阅(logical subscriber)”。每组都有多个消费者实例组成,这样更有利于可扩展性和容错。用消费者集群代替单一进程的用意就是在此。

相比传统的消息系统,Kafka还可以更好地保证消息的序列。

传统队列在服务器端保持消息的有序性,当有多个消费者从消息队列中处理消息时,服务器以存储的顺序,有序地分发消息。尽管服务器是有序地分发消息,但是消息是异步地分发给消费者。所以,消息也许不是按照原来的顺序到达不同消费者。这实际上意味着,消息在并发处理时,失去了原有的有序性。消息系统经常使用一种“独家消费者(exclusive consumer)”的概念来解决这个问题,其实就是只需要一个进程来处理队列中的消息,但是,这样也就意味着不能并发处理消息。

Kafka在这方面处理的更好。它在主题内使用分区,这个类似并发的概念,来处理这个问题。

![Kafka集群内部结构](./images/consumer-groups.png)


You are viewing a condensed version of this merge commit. You can view the full changes here.