kafka读书笔记-生产者(Producer)-1

本文介绍了Kafka的生产者(Producer)概念,以图书馆为例进行生动阐述。生产者需要指定至少一个broker地址、key.serializer和value.serializer来序列化消息。send方法用于发送消息,并可通过回调函数处理结果。生产者发送消息前会经过拦截器、序列化器和分区器三个阶段,这些阶段都允许自定义扩展。拦截器用于定制消息操作,序列化器转换消息为字节,分区器计算消息发送的分区。
摘要由CSDN通过智能技术生成

生产者(Producer)就是负责向kafka发送消息的应用程序。

拿图书馆举例的话,不同的出版社(生产者producer)把图书(消息message)发送给图书馆(kafka服务),然后所有人(消费者)可以去指定图书馆浏览图书(poll拉取消息),浏览图书信息自己进行下一步归类总结之类(消费消息定制操作)。

生产者对象构建时需要指定生产者连接kafka集群所需的至少一个broker地址,就是出版社发书需要指定发去新华书店,可以指定北京新华书店和南京新华书店,然后全国新华书店自己协调其他地区新华书店进行书籍派发。

然后还需指定key.serializer和value.serializer,对发送消息的key和value进行序列化,比如出版社发送了包含很多节课文(value)的语文书(key)和很多节课文(value)的数学书(key),同时和新华书店对接时为了方便传输采用了自定义的传输方式,比如1表示语文,2表示数学。对应在kafka传输中就是不同的序列化方式,将传输内容按照不同的方式转换成字节byte数组。

上面三个参数是发送必备的参数,除此之外还有很多参数,之后进行罗列。

producer连接上kafka之后,通过send方法发送消息,传入消息对象ProducerRecord即可发送,send方法可传入回调函数进行成功后的回调操作。实际上send方法返回的是一个Future<RecordMetadata>类型的结果,所以可以通过future的get方法实现阻塞等待返回结果的同步发送效果。但是通过调用future.get方法的话就需要自己去处理异常和返回值,需要额外包装一层异常捕获的代码,而且也需要自己去判定何时调用future

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值