当前位置: 首页 > 知识库问答 >
问题:

向Kafka发送Avro消息

经福
2023-03-14

我有一个应用程序,它定期生成原始JSON消息数组。我能够使用avro-tools将其转换为Avro。我这样做是因为由于Kafka-Connect JDBC接收器的限制,我需要消息包含模式。我可以在记事本上打开这个文件,看到它包括模式和几行数据。

现在,我想将其发送到我的中央Kafka代理,然后使用Kafka Connect JDBC接收器将数据放入数据库。我很难理解我应该如何将这些Avro文件发送给我的Kafka经纪人。我需要一个模式注册表吗?我相信Kafka不支持阿夫罗,所以我想我将不得不坚持Kafka制片人。sh的Kafka安装随附(请纠正我,如果我错了)。

问题是:有人可以分享步骤,以产生我的Avro文件的Kafka经纪人没有融合参与。

谢谢,

共有1个答案

慕俊语
2023-03-14

要使用Kafka Connect JDBC接收器,数据需要显式模式。在连接器配置中指定的转换器决定了模式的保存位置。这可以嵌入到JSON消息中(org.apache.kafka.connect.JSON.JsonConverter,带有模式。enabled=true)或保存在模式注册表中(io.confluent.connect.avro.AvroConverterio.confluent.connect.protobuf.ProtobufConverter,或io.confluent.connect.JSON.JsonSchemaConverter)。

要了解更多信息,请参阅https://www.confluent.io/blog/kafka-connect-deep-dive-converters-serialization-explained

要将Avro消息写入Kafka,您应该将其序列化为Avro并将模式存储在Schema注册表中。有一个Go客户端库可用于示例

没有融合参与。

你这是什么意思还不完全清楚。Kafka Connect JDBC接收器由Confluent编写。管理模式的最佳方法是使用模式注册表。如果您不想使用模式注册表,那么可以将模式嵌入JSON消息中,但这是一种不太理想的方式。

 类似资料:
  • 我用本地安装的Confluent4.0.0尝试了官方模式-注册表-汇合示例(Consumer/Producer),它可以在发送post请求和在listener接收时发送“Sensor”avro消息,但当我使用Confluent4.0.0附带的kafka-avro-console-consumer工具查看发送的avro消息时,该工具引发了以下错误(a)。我还尝试使用kafka-avro-consol

  • 我有一个问题与产生的消息Kafka的主题。 我使用来自外部供应商的Kafka管理服务,所以我问他经纪人的状况,他说一切都好。顺便说一句,它发生在三个不同的Kafka实例上。Kafka客户端版本也无关紧要-0.11.0.0和2.0.1都有。

  • 我是Kafka的新手,当我试图发送信息到我得到的主题下面的错误。有人能帮我一下吗? [2018-09-23 13:37:56,613]警告[Producer Clientid=Console-Producer]无法建立到节点-1的连接。代理可能不可用。(org.apache.kafka.clients.NetworkClient)

  • 我正在尝试用Avro序列化器和模式注册表向Kafka发送一个对象。 这里是一个简化的代码: 我假设架构是从注册表“幕后”读取的,对象(用户)是序列化的,但我得到了下面的错误。 我遗漏了什么? 我必须显式读取架构并发送GenericRecord吗? org.apache.kafka.common.errors.SerializationException:序列化Avro消息 时出错,原因是:java

  • 我正在尝试使用HDFS kafka连接器将protobuf消息从kafka发送到HDFS。我的连接器配置如下所示 为了测试这一点,我尝试在一个小节点应用程序中发送protobuf序列化消息。这是我的文件: 和我的节点应用程序 但是,当我运行此程序时,我会出现以下错误: 我该如何解决这个问题?我的猜测是,我的protobuf模式没有在Kafka模式注册表中注册,但我不确定。如果是这种情况,是否有方法

  • 我正在使用kafka java客户端和kafka服务器。 我的代码: Kafka马纳格 当我的循环长度如果在1000左右(在类)时,我就能成功地向Kafka主题发送数据。 但当我的循环长度为1或小于10时,我无法向Kafka主题发送数据。注意我没有得到任何错误。 根据我的发现,如果我想发送一个单一的消息到Kafka主题,根据这个程序我得到了成功的消息,但从来没有得到一个关于我的主题的消息。 但是如