使用 Kafka Avro Console Consumer 时如何为特定的 Schema 注册表传递参数?

Posted

技术标签:

【中文标题】使用 Kafka Avro Console Consumer 时如何为特定的 Schema 注册表传递参数?【英文标题】:How to pass parameters for a specific Schema registry when using Kafka Avro Console Consumer? 【发布时间】:2018-09-30 08:25:18 【问题描述】:

我正在尝试使用 Confluent kafka-avro-console-consumer,但是如何将 Schema Registry 的参数传递给它?

【问题讨论】:

什么参数? 对于架构注册表设置.. 【参考方案1】:

只是猜测你在寻找什么......

kafka-avro-console-consumer --topic topicX --bootstrap-server kafka:9092 \ 
    --property schema.registry.url="http://schema-registry:8081"

不,您不能指定架构版本。 ID 直接从主题中的 Avro 数据中使用。主题名称映射到主题名称。

使用--property print.key=true 查看 Kafka 消息密钥。这是常规控制台消费者的一般属性。

这些是 avro-console-consumer 脚本中唯一的额外选项,这意味着除了 kafka-consumer-consumer 中已经定义的内容之外,您只能提供 --formatter--property schema.registry.url,并且不能提供其他架构注册表特定参数(无论那些可能是)

for OPTION in "$@"
do
  case $OPTION in
    --formatter)
      DEFAULT_AVRO_FORMATTER=""
      ;;
    --*)
      ;;
    *)
      PROPERTY=$OPTION
      case $PROPERTY in
        schema.registry.url*)
          DEFAULT_SCHEMA_REGISTRY_URL=""
        ;;
      esac
      ;;
    esac
done 

【讨论】:

以上是关于使用 Kafka Avro Console Consumer 时如何为特定的 Schema 注册表传递参数?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Kafka Avro Console Consumer 时如何为特定的 Schema 注册表传递参数?

使用 kafka lib 反序列化 PRIMITIVE AVRO KEY

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十三)定义一个avro schema使用comsumer发送avro字符流,producer接受avro字符流并解析(示例代码

Kafka中使用Avro编码解码消息

Pyspark 2.4.0,使用读取流从 kafka 读取 avro - Python

使用 kafka 连接的 hdfs 中没有 avro 数据