文章目录
- 一、从基础的客户端说起
-
- 1、消息发送者主流程
- 2、消息消费者主流程
- 二、从客户端属性来梳理客户端工作机制
-
- 1、消费者分组消费机制
- 2、生产者拦截器机制
- 3、消息序列化机制
- 4、消息分区路由机制
- 5、生产者消息缓存机制
- 6、发送应答机制
- 三、客户端流程总结
- 四、SpringBoot集成Kafka
这一部分主要是从客户端使用的角度来理解Kakfa的重要机制。重点依然是要建立自己脑海中的Kafka消费
模型。Kafka的HighLevel API使用是非常简单的,所以梳理模型时也要尽量简单化,主线清晰,细节慢慢扩
展。
Kafka提供了两套客户端API,HighLevel API和LowLevel API。 HighLevel API封装了kafka的运行细
节,使用起来比较简单,是企业开发过程中最常用的客户端API。 而LowLevel API则需要客户端自己管
理Kafka的运行细节,Partition,Offset这些数据都由客户端自行管理。这层API功能更灵活,但是使
用起来非常复杂,也更容易出错。只在极少数对性能要求非常极致的场景才会偶尔使用。我们的重点
是HighLeve API 。
一、从基础的客户端说起
Kafka提供了非常简单的客户端API。只需要引入一个Maven依赖即可:
1、消息发送者主流程
然后可以使用Kafka提供的Producer类,快速发送消息。
整体来说,构建Producer分为三个步骤:
- 设置Producer核心属性 :Producer可选的属性都可以由ProducerConfig类管理。比如
ProducerConfig.BOOTSTRAP_SERVERS_CONFIG属性,显然就是指发送者要将消息发到哪个Kafka集
群上。这是每个Producer必选的属性。在ProducerConfig中,对于大部分比较重要的属性,都配置了
对应的DOC属性进行描述。 - 构建消息:Kafka的消息是一个Key-Value结构的消息。其中,key和value都可以是任意对象类型。其
中,key主要是用来进行Partition分区的,业务上更关心的是value。 - 使用Producer发送消息。:通常用到的就是单向发送、同步发送和异步发送者三种发送方式。