Java 如何使用kafka python生成的来自kafka的消息?

Java 如何使用kafka python生成的来自kafka的消息?,java,python-3.x,apache-kafka,kafka-producer-api,kafka-python,Java,Python 3.x,Apache Kafka,Kafka Producer Api,Kafka Python,我想得到卡夫卡的帮助 是否可以使用由生成的kafka console consumer.sh来使用utf8(日语)消息 卡夫卡python代码 kafka-cosole-consumer.sh 结果 似乎日语字符串(utf-8)未正确反序列化。它已损坏 我正试图通过下面的路线发送消息 producer(kafka-python) -> AWS MSK (2.4.1.1) -> consumer(kafka-console-consumer.sh) 我有两件事我没有正确

我想得到卡夫卡的帮助

是否可以使用由生成的
kafka console consumer.sh
来使用utf8(日语)消息

  • 卡夫卡python代码
  • kafka-cosole-consumer.sh
  • 结果
似乎日语字符串(utf-8)未正确反序列化。它已损坏

我正试图通过下面的路线发送消息

producer(kafka-python) -> AWS MSK (2.4.1.1) -> consumer(kafka-console-consumer.sh) 

我有两件事我没有正确理解

  • 在Java中将字节对象转换为字节类型。正如@codeflush.dev所说,我看到了正确的行为
  • 将字节数组中的记录值反序列化为值或对象

  • 我忽略了转义非ascii字符的事实。这是由Sure_ascii选项控制的
  • 如果确保_ascii为true(默认值),则输出保证转义所有传入的非ascii字符。如果确保ascii为false,这些字符将按原样输出

    通过将Sure_ascii设置为
    False
    ,然后转换为字节,解决了该问题

    producer = KafkaProducer(bootstrap_servers=['localhost:9092'], value_serializer=lambda m: json.dumps(m, ensure_ascii=False).encode('utf-8'))
    
    涉及


    在我看来它并没有损坏
    "uuid": "d/U55wRdSj60yJBcYVpt8A==", "id": 4459052115, "topic": "\x5Cu6e21\x5Cu8fba \x5Cu88d5\x5Cu306e\x5Cu30d1\x5Cu30fc\x5Cu30bd\x5Cu30ca\x5Cu30eb\x5Cu30df\x5Cu30fc\x5Cu30c6\x5Cu30a3\x5Cu30f3\x5Cu30b0\x5Cu30eb\x5Cu30fc\x5Cu30e0", "host": "\x5Cu6e21\x5Cu8fba \x5Cu88d5", "email": "y-watanabe@creationline.com", "user_type": "\x5Cu30e9\x5Cu30a4\x5Cu30bb\x5Cu30f3\x5Cu30b9\x5Cu6e08\x5Cu307f", "start_time": "2020-11-03T10:36:29Z", "end_time": "", "duration": "", "participants": 1, "has_pstn": false, "has_voip": false, "has_3rd_party_audio": false, "has_video": false, "has_screen_share": false, "has_recording": false, "has_sip": false, "dept": ""}
    
    producer(kafka-python) -> AWS MSK (2.4.1.1) -> consumer(kafka-console-consumer.sh) 
    
    producer = KafkaProducer(bootstrap_servers=['localhost:9092'], value_serializer=lambda m: json.dumps(m, ensure_ascii=False).encode('utf-8'))