kafka 生产者和消费者概念

趁着年轻多出来走走,不然你不会知道,呆在家里有多爽。

 

生产者 producer 

在kafka 系统中的生产者产生的消息包含那几个部分

  • topic:往哪个topic生产消息。
  • partition:往哪个partition生产消息。
  • key:根据该key将消息分区到不同partition。
  • message:消息。

 

消费者 consumer

  kafka通过consumer group将两种模式(队列和发布订阅)统一处理:每个consumer将自己标记consumer group名称,之后系统会将consumer group按名称分组,将消息复制并分发给所有分组,每个分组只有一个consumer能消费这条消息。

当所有consumer的consumer group相同时,系统变成队列模式;

当每个consumer的consumer group都不相同时,系统变成发布订阅;

 

一般的消息系统存在2种消费模型

  push:优势在于消息实时性高。劣势在于没有考虑consumer消费能力和饱和情况,容易导致producer压垮consumer。

  pull:优势在可以控制消费速度和消费数量,保证consumer不会出现饱和。劣势在于当没有数据,会出现空轮询,消耗cpu。

 

kafka 的consumer 采用的是pull 模型

posted @ 2022-03-01 09:02  方达达  阅读(20)  评论(0编辑  收藏  举报