一、生产者端
1.将数据包装为ProducerRecord对象
Producer通过调用send(ProducerRecord)发送消息,ProducerRecord对象包含Topic等信息
2.Interceptor
拦截器,通过API可以自定义拦截器,过滤掉不需要的信息
3.序列化
由于kafka是集群工作模式,集群之间传递需要序列化(Serilizer)
4.分区(partition)
send()函数参数Topic、value为必选项,可选项包括key、partition以及头信息
(1)当send()函数中指定partition时,将指定的值作为partition的分区
(2)当send()函数未指定partition时,但有key值时,用topic分区个数对key的hash值取余,余数作为分区值

本文详细介绍了Kafka的工作流程,包括生产者端的数据包装、序列化、分区策略,缓存区的异步发送机制,broker的可靠性保证和文件存储机制,以及消费者端的分区分配策略和offset维护。
最低0.47元/天 解锁文章
2061

被折叠的 条评论
为什么被折叠?



