
kafka struct
kafka & consumer group 2
kafka group 3
图中说明一个consumer 可以消费多个partition (一般配置的partition有10个)
但是一个partition 只能连接一个consumer
Consumer 可以认为是消费者服务的实例
多个consumer可以组成一个组,每个消息只能被组中的一个consumer消费,
(所以一个partition对应的在同一个组中对应的consumer只有一个)
如果一个消息可以被多个consumer消费的话,那么这些consumer必须在不同的组。
(正如图3 中的两个不同颜色的线 虽然是同一个内容的消息 但是去往不同的组)
一个partition,只能被消费组里的一个消费者消费,但是可以同时被多个消费组消费
每个主题有多个分区,不同的消费者处理不同的分区,所以Kafka不仅保证了消息的有序性,也做到了消费者的负载均衡。
因为经常说到partition可以用于负载均衡 一个消息只会进入其中一个partition
自己的实验也证实了这种猜测
Kafka 的生产者和消费者相对于服务端而言都是客户端,生产者客户端发布消息到服务端的指定主题, 会指定消息所属的分区。生产者发布消息时根据消息是否有键, 采用不同的分区策略。消息没有键时,通过轮询方式进行客户端负载均衡消息有键时,根据分区语义确保相同键的消息总是发送到同一个分区。
nsqd and channel GIF
>
以上就是关于【kafka】kafka topic 扩分区、副本全部的内容,包括:【kafka】kafka topic 扩分区、副本、kafka存储结构以及Log清理机制、Kafka & NSQ等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)