企业级别的Kafka配置--按照市场分区
- 背景--Kafka广播
- 按照市场分区
- 生产者和消费者设计方案
- Kafka Broker设计
- 消费消息时增加过滤条件
- 消费者端利用多线程/多协程机制提高吞吐量
背景–Kafka广播
对于同一个Topic来说,每个消费者组都可以拿到这个Topic中的全部数据。消费者组内的所有消费者协调在一起来订阅并消费Kafka Topic中的所有分区。
按照市场分区
生产者和消费者设计方案
创建新的消费者组不需要耗费太多系统资源,故可以按照市场配置消费者组。这样的好处在于,每个消费者组可以控制消费速度,不会对别的分区有影响。
服务按照市场分区后,生产者自然也是按照市场分区。
Kafka Broker设计
在Kafka Broker中,我们不做任何分区,这样有两个优点:
- 保证消息的有序性
- 提高管理效率,不用对于每个分区维护一份Topic
消费消息时增加过滤条件
由于Kafka的广播机制,每个Consumer获得消息是来自所有地区的消息,因此需要增加关于地区的过滤条件来筛选掉不是本地区的消息。
消费者端利用多线程/多协程机制提高吞吐量
一个Partition只能由消费者组中的一个消费者消费,这需要我们利用多线程/多协程机制来提高系统的吞吐量。
下一篇,将会介绍Go的Kafka包Sarama的多协程机制。