开发者社区> 问答> 正文

使用kafka客户端消费binlog出现乱码

使用kafka客户端消费binlog出现乱码

原提问者GitHub用户zhongtiancai

展开
收起
Java工程师 2023-05-08 19:19:46 307 0
2 条回答
写回答
取消 提交回答
  • kafka发送的是message数据包不是可见字符串,客户端接收到后需要反序列化解包,参考client.kafka

    原回答者GitHub用户rewerma

    2023-05-09 19:47:00
    赞同 展开评论 打赏
  • 在使用kafka客户端消费binlog的过程中出现乱码,可能是因为字符集的问题导致的。可以尝试在创建Kafka Producer和Consumer时设置字符集为UTF-8,即在Producer和Consumer的配置文件中添加以下内容:

    props.put("key.serializer.encoding", "UTF8");
    props.put("value.serializer.encoding", "UTF8");
    
    props.put("key.deserializer.encoding", "UTF8");
    props.put("value.deserializer.encoding", "UTF8");
    

    另外,还可以在MySQL中设置字符集为UTF-8,即在my.cnf文件中添加以下内容:

    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    
    

    如果以上方法都不能解决问题,可以尝试使用其他解析binlog的工具,如Debezium等。

    2023-05-09 08:04:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载