【问题标题】:Kafka send to azure event hubKafka 发送到 azure 事件中心
【发布时间】:2020-06-12 17:37:55
【问题描述】:

我已经在我的机器上设置了一个 kafka,我正在尝试设置 Mirror Maker 以从本地主题消费并将其镜像到 azure 事件中心,但到目前为止我一直无法做到这一点并且我收到以下错误:

ERROR Error when sending message to topic dev-eh-kafka-test with key: null, value: 5 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

一段时间后,我意识到这一定是生产者部分,所以我尝试简单地将 kafka-console-producer 工具直接用于事件中心并得到同样的错误。

这是我的生产者设置文件:

bootstrap.servers=dev-we-eh-feed.servicebus.windows.net:9093
compression.type=none
max.block.ms=0
# for event hub
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://dev-we-eh-feed.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=*****”;

这里是旋转生产者的命令:

kafka-console-producer.bat --broker-list dev-we-eh-feed.servicebus.windows.net:9093 --topic dev-eh-kafka-test

我的事件中心命名空间有一个名为 dev-eh-kafka-test 的事件中心。

有人能做到吗?最终的想法是使用证书对其进行 SSL,但首先我需要能够进行连接。

我尝试同时使用 Apacha Kafka 1.1.1 或 Confluent Kafka 4.1.3(因为这是客户端使用的版本)。

==== 更新 1

有人向我展示了如何获取更多日志,这似乎是错误的详细版本

[2020-02-28 17:32:08,010] DEBUG [Producer clientId=console-producer] Initialize connection to node dev-we-eh-feed.servicebus.windows.net:9093 (id: -1 rack: null) for sending metadata request (org.apache.kafka.clients.NetworkClient)
[2020-02-28 17:32:08,010] DEBUG [Producer clientId=console-producer] Initiating connection to node dev-we-eh-feed.servicebus.windows.net:9093 (id: -1 rack: null) (org.apache.kafka.clients.NetworkClient)
[2020-02-28 17:32:08,010] DEBUG [Producer clientId=console-producer] Created socket with SO_RCVBUF = 32768, SO_SNDBUF = 102400, SO_TIMEOUT = 0 to node -1 (org.apache.kafka.common.network.Selector)
[2020-02-28 17:32:08,010] DEBUG [Producer clientId=console-producer] Completed connection to node -1. Fetching API versions. (org.apache.kafka.clients.NetworkClient)
[2020-02-28 17:32:08,010] DEBUG [Producer clientId=console-producer] Initiating API versions fetch from node -1. (org.apache.kafka.clients.NetworkClient)
[2020-02-28 17:32:08,010] DEBUG [Producer clientId=console-producer] Connection with dev-we-eh-feed.servicebus.windows.net/51.144.238.23 disconnected (org.apache.kafka.common.network.Selector)
java.io.EOFException
        at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:124)
        at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:93)
        at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:235)
        at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:196)
        at org.apache.kafka.common.network.Selector.attemptRead(Selector.java:559)
        at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:495)
        at org.apache.kafka.common.network.Selector.poll(Selector.java:424)
        at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:460)
        at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:239)
        at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:163)
        at java.base/java.lang.Thread.run(Thread.java:830)
[2020-02-28 17:32:08,010] DEBUG [Producer clientId=console-producer] Node -1 disconnected. (org.apache.kafka.clients.NetworkClient)

【问题讨论】:

  • 对了,为什么不是 MirrorMaker2?
  • 你能nc -vz dev-we-eh-feed.servicebus.windows.net 9093吗?你确定端口是开放的并且地址是正确的吗?
  • @cricket_007,这是客户强制要求的,这里没有选项。我确信它可以访问,因为我可以远程登录。

标签: apache-kafka azure-eventhub apache-kafka-mirrormaker


【解决方案1】:

所以这是有效的配置(似乎我缺少 client.id)。

另外,好像不能选择目标主题,好像必须和源同名……

bootstrap.servers=dev-we-eh-feed.servicebus.windows.net:9093
client.id=mirror_maker_producer
request.timeout.ms=60000
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://dev-we-eh-feed.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=******";

【讨论】:

  • 如果您使用MirrorMaker2,您可以修改目标主题
  • 感谢您提供的信息。不幸的是我被这个困住了:(
  • 怎么回事?您应该能够单独下载较新的 kafka 版本/脚本,而无需升级 kafka
  • 嗨,@FEST 你是否成功地将数据从本地 kafka 发送到 Azure 事件中心,你有一些文档要遵循吗?
  • @OneCricketeer 是否有适用于 Azure Eventthub 的 kafka 接收器连接器,我需要将数据从 Kafka 发送到 Azure Eventthub。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多