《kafka权威指南》学习记录1

本文深入探讨了Kafka生产者的组件,包括send线程、序列化器和分区策略。详细介绍了如何创建和配置生产者,特别是强调了顺序保证的设置。还讨论了自定义序列化器,特别提到了Arvo序列化的特性和使用场景。此外,文章还提及了分区策略的定制,给出了一个可能的应用场景及其实现方法。最后,简要触及了拦截器在生产者中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客只作为自己学习的一个记录。

一.kafka生产者

1.kafka生产者组件

main线程 send线程 producerrecord对象 序列化器 分区器。

Producerrecord对象格式:topic [key] [partition] value

2.生产者发送消息过程

3.kafka生产者应用程序开发步骤

创建生产者

Properties KafkaProducer 三个必须配置:kafka ip,key和value的序列化方式。

发送消息到kafka

发送并忘记

同步发送:feature对象的get方法

异步发送:send()方法里传入一个回调函数

其他的一些配置 能说出几个

顺序保证:retries设为0 max.in.flight.requests.per.connection topic分区数为1

4.序列化器

自定义序列化器

实现serializer接口,重写configure() serialize() close()方法,不建议自定义,kafka自带已够用。

arvo序列化方式

什么是arvo?

答:是一种与编程语言无关的序列化格式,提供一种共享文件的方式。

arvo的一个很重要的特性非常适合kafka?

答:

arvo的原理?

答:它的原理在于描述序列化对象的schema格式:{“namespace”:"***","type":"***","name","类名",["fields":{"name":"字段名","type":"字段类型"}]},这样的结构就算修改数据的schema,不用修改所有负责读取数据的应用程序,不会出现异常或阻断性错误。

schema注册表解决的问题?

答:

arvo序列化和反序列化流程?

答:通过序列化将数据序列化为字节数组,数据中包括schema的ID信息,同时将schema注册到注册表(一个组件),读取反序列化时通过schema id从注册表获取schema.

arvo在kafka中的具体使用?

答:

5.分区

分区策略:默认三种 注:其中一种根据key的散列值,进行取余时是根据所有的分区,而不是所有的可用分区。这就存在一个问题,如果分区不可用,就会发生错误。

自定义分区策略

能想出一种应用场景?

答:

具体实现方法?

答:实现partitioner接口,重写三个方法config() partition() close()

自定义分区器实现好了怎么使用?

答:

6.拦截器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值