怎么使用KafkaProducer写入中文而不转换成二进制 producer = KafkaProducer (bootstrap_servers=['192.168.0.64:9092'],value_serializer=lambda m: json.dumps(m).encode()) producer.send("shuzu_test1",action) 其中data是一个字典,试过: json.dumps(m).encode("UTF8") 还是二进制如下:
kafka之所以快,就是因为在内部流转的时候,都是统一的二进制。
摘自:kafka效率
但是为什么在linux下kafka自带的客户端直接写入的中文,直接读出来就是中文,但是在用模块写入的时候就是二进制再读出来就要转换?
生产者/消费者命令行客户端序列化默认是
String
,所以你的程序也要设置的。生产者:
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
参考:Kafka Producer配置
消费者:
props.setProperty("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.setProperty("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
参考:Kafka Consumer配置
感谢大佬
你的答案