日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot 自定义Kafka消息序列化和反序列化

發布時間:2025/3/19 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot 自定义Kafka消息序列化和反序列化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 概述

Kafka傳輸自定義的DTO對象時,不能像平時一樣使用StringSerializer和StringDeserializer。這種情況需要自己實現對應DTO的序列化器和反序列化器。假設現在有個 KafkaMsgDto 類,代碼如下:

@Data public class KafkaMsgDto {private String id;private ActionEnum action;public KafkaMsgDto(){}public KafkaMsgDto(String id, ActionEnum action){this.id = id;this.action = action;}public enum ActionEnum{SAVE,DELETE;} }

2. Serializer

public class KafkaMsgSerializer implements Serializer<KafkaMsgDto> {private String encoding = "UTF8";public KafkaMsgSerializer(){}@Overridepublic void configure(Map<String, ?> configs, boolean isKey) {String propertyName = isKey ? "key.serializer.encoding" : "value.serializer.encoding";Object encodingValue = configs.get(propertyName);if (encodingValue == null) {encodingValue = configs.get("serializer.encoding");}if (encodingValue instanceof String) {this.encoding = (String)encodingValue;}}@Overridepublic byte[] serialize(String s, KafkaMsgDto data) {try {if (data == null){return null;}return JSON.toJSONString(data).getBytes(this.encoding);} catch (UnsupportedEncodingException var4) {throw new SerializationException("Error when serializing string to byte[] due to unsupported encoding " + this.encoding);}} }

3. Deserializer

public class KafkaMsgDeserializer implements Deserializer<KafkaMsgDto> {private String encoding = "UTF8";public KafkaMsgDeserializer(){}public void configure(Map<String, ?> configs, boolean isKey) {String propertyName = isKey ? "key.deserializer.encoding" : "value.deserializer.encoding";Object encodingValue = configs.get(propertyName);if (encodingValue == null) {encodingValue = configs.get("deserializer.encoding");}if (encodingValue instanceof String) {this.encoding = (String)encodingValue;}}public KafkaMsgDto deserialize(String topic, byte[] data) {try {if (data == null){return null;}return JSON.parseObject(new String(data, this.encoding), KafkaMsgDto.class);} catch (UnsupportedEncodingException var4) {throw new SerializationException("Error when deserializing byte[] to string due to unsupported encoding " + this.encoding);}} }

4. application.properties

修改對應的序列化、反序列化配置

spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer spring.kafka.producer.value-serializer=com.train.kafka.serialization.KafkaMsgSerializerspring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer spring.kafka.consumer.value-deserializer=com.train.kafka.serialization.KafkaMsgDeserializer

5. 發送消息

KafkaMsgDto dto = new KafkaMsgDto(id, KafkaMsgDto.ActionEnum.SAVE); kafkaTemplate.send("test-topic", dto);

6. 接收消息

@KafkaListener(topics = "test-topic")public void onListener(KafkaMsgDto dto){if (dto == null){System.out.println("接收到空消息");return;}System.out.println(String.format("接收到消息:%s", dto.toString()));if (dto.getAction() == KafkaMsgDto.ActionEnum.DELETE){//執行刪除業務邏輯}else{//執行保存業務邏輯}}

總結

以上是生活随笔為你收集整理的SpringBoot 自定义Kafka消息序列化和反序列化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 1769国产| 97爱爱| 丁香啪啪综合成人亚洲 | 男人添女人下部高潮全视频 | 69午夜 | 久久久久久久久久一级 | 久久538 | 日本在线中文字幕专区 | 精品国产aⅴ一区二区三区四川人 | 蛇女欲潮性三级 | 精品国产18久久久久久二百 | 精品福利三区3d卡通动漫 | 国产乱码一区二区三区播放 | 男人的天堂影院 | 久久噜噜噜 | 国产真实的和子乱拍在线观看 | 成人国产免费视频 | 亚洲黄在线观看 | 黄色av网址大全 | 91丝袜美女 | 亚洲精品一区二区三区四区乱码 | 中文字幕亚洲乱码熟女一区二区 | 亚洲国产婷婷 | 娇妻之欲海泛舟无弹窗笔趣阁 | 日韩性插 | 国产jizz | 亚洲无吗在线 | 99国产精品久久久久 | 免费一级特黄3大片视频 | 69精品在线 | av在线官网| 国产精品伦子伦 | 欧美激情精品 | 农村妇女愉情三级 | 欧美亚洲国产成人 | 天天色综合1 | 国产精品美女久久久久久 | 欧美一级性视频 | 天天操精品 | 69国产精品 | 日日碰狠狠添天天爽 | 人妖天堂狠狠ts人妖天堂狠狠 | 人人干av | 国产毛片久久 | 美女操操操 | 人人艹在线 | 99这里精品| 黄色男同视频 | 亚洲男人在线天堂 | 日韩特黄 | 天堂av免费在线 | 精品国产免费看 | 免费爱爱视频网站 | 91精品国产麻豆 | 沈樵精品国产成av片 | 五月婷综合网 | 狠狠干天天操 | 国产在线播放一区二区 | 在线小视频| 白白色免费视频 | 国产三级小视频 | 激情在线观看视频 | 毛片日本 | 成人免费福利视频 | 亚洲色图网友自拍 | 97爱视频 | 你懂的网站在线观看 | 性久久| 天天综合日韩 | 一级二级av | 亚洲AV成人午夜无码精品久久 | 国产色 | 久久午夜影视 | 被灌满精子的波多野结衣 | 久草一区二区 | 台湾150部性三级 | 国产视频精品在线 | 男男全肉变态重口高h | 国产一区二区久久精品 | 午夜男人av | 欧美日韩免费观看一区=区三区 | 亚洲欧洲综合在线 | 日日精品 | 超黄av| 精品国产av色一区二区深夜久久 | 成人免费视频播放 | 蜜臀av色欲a片无码精品一区 | 一区二区的视频 | 精射女上司 | 狠狠干伊人网 | 久久精品黄色片 | 国产精品视频免费观看 | 亚洲网站免费 | 无码人妻精品中文字幕 | 黄色aa网站 | 久草免费网站 | 久草免费在线播放 | 天天摸天天操 | 香蕉视频二区 |