1

我目前正在为 Logstash 开发 Azure Event Hubs 输出插件,我遇到了一个问题,在运行大约 30 分钟后,logstash 会卡住一段时间,因为事件中心的输出时间太长。

我的技术栈:

Telegraf 通过 tcp 发送到 logstash。

Logstash 使用默认管道设置。

Logstash 使用 java createSync、sendSync 方法输出到事件中心。

我如何创建连接:

connection_builder = EventHubs::ConnectionStringBuilder.new()
connection_builder.setNamespaceName(@service_namespace)
connection_builder.setEventHubName(@event_hub)
connection_builder.setSasKeyName(@sas_key_name)
connection_builder.setSasKey(@sas_key)

@executor_service = java::util::concurrent::Executors.newSingleThreadExecutor()
@eventhub_client = EventHubs::EventHubClient.createSync(connection_builder.toString(), @executor_service)

我如何发送事件:

event_data = EventHubs::EventData.create(body.to_java_bytes)
partition_key = get_partition_key(event)
        @eventhub_client.sendSync(event_data, partition_key)

为什么发送到事件中心这么慢?

你认为通过 AMQP 发送会有任何性能问题吗?

如果您需要更多上下文或代码,请询问,我将在下面发布。

4

0 回答 0