Kafka:生产者序列化器所处位置和常见的序列化器

56 篇文章 1 订阅

 序列化器所处位置

 常见的序列化器

org.apache.kafka.common.serialization.ByteArraySerializer

org.apache.kafka.common.serialization.ByteBufferSerializer

org.apache.kafka.common.serialization.BytesSerializer

org.apache.kafka.common.serialization.DoubleSerializer

org.apache.kafka.common.serialization.FloatSerializer

org.apache.kafka.common.serialization.IntegerSerializer

org.apache.kafka.common.serialization.StringSerializer

org.apache.kafka.common.serialization.LongSerializer

org.apache.kafka.common.serialization.ShortSerializer 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kafka生产者拦截可以在消息被发送到Kafka集群之前对消息进行定制化修改,例如增加一些额外的信息、对消息进行压缩、加密等操作,从而满足一些特定的需求。常见的拦截有:压缩拦截、加密拦截、性能监控拦截等。 在实现自定义的生产者拦截时,需要实现org.apache.kafka.clients.producer.ProducerInterceptor接口,并重写onSend()和onAcknowledgement()方法。其中,onSend()方法在消息被序列化之前调用,可以在此方法中对消息进行修改;onAcknowledgement()方法在消息被确认接收后调用,可以在此方法中对成功发送的消息进行统计。 以增加时间戳为例,以下是一个简单的生产者拦截实现: ```java public class TimestampInterceptor implements ProducerInterceptor<String, String> { @Override public ProducerRecord<String, String> onSend(ProducerRecord<String, String> record) { String modifiedValue = System.currentTimeMillis() + "," + record.value(); return new ProducerRecord<>(record.topic(), record.partition(), record.timestamp(), record.key(), modifiedValue, record.headers()); } @Override public void onAcknowledgement(RecordMetadata metadata, Exception exception) { // do nothing } @Override public void close() { // do nothing } @Override public void configure(Map<String, ?> configs) { // do nothing } } ``` 在上述代码中,onSend()方法会在消息发送前将当前时间戳加在消息值的前面,并返回一个新的ProducerRecord对象。在configure()方法中可以进行一些初始化操作。调用producer.addInterceptor()方法将拦截添加到生产者中即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员无羡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值