融合云| Java Avro序列化价值中的垃圾字符

问题描述

我正在尝试使用Java中的基本Avro发布者,示例中提供了该

https://github.com/confluentinc/examples/blob/5.5.1-post/clients/avro/src/main/java/io/confluent/examples/clients/basicavro/ProducerExample.java

我能够在本地计算机(macOS)和GCP中提供的自我管理的融合云(自我管理的融合二进制文件)中成功发布

enter image description here

同样尝试过融合云

我有一个融合的云访问权限,我正在尝试使用相同的示例,但是它显示的是垃圾字符。

enter image description here

在融合云中执行的步骤

  1. 通过名称交易手动创建主题
  2. 使用以下条目创建了配置文件

    enter image description here

  3. 通过传递绝对文件路径配置来运行Java应用程序。
  4. 我能够看到架构也在融合云中设置。

    enter image description here

由于缺少什么,你们中的任何人都可以帮我吗

解决方法

您的数据是正确的; Confluent Cloud邮件查看器当前(2020年9月)不支持呈现Avro邮件。

您可以使用诸如kafkacat之类的使用者来验证数据是否正确:

docker run --rm edenhill/kafkacat:1.6.0 \
         -X security.protocol=SASL_SSL -X sasl.mechanisms=PLAIN \
         -X ssl.ca.location=./etc/ssl/cert.pem -X api.version.request=true \
         -b ${CCLOUD_BROKER_HOST} \
         -X sasl.username="${CCLOUD_API_KEY}" \
         -X sasl.password="${CCLOUD_API_SECRET}" \
         -t your_topic \
         -C -o beginning \
         -f 'Topic %t[%p],offset: %o,Headers: %h,key: %k,payload: %S bytes: %s\n ' \
         -s avro -r https://"${CCLOUD_SCHEMA_REGISTRY_API_KEY}":"${CCLOUD_SCHEMA_REGISTRY_API_SECRET}"@${CCLOUD_SCHEMA_REGISTRY_URL}