我目前正在为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发送会出现性能问题?
如果您需要更多上下文或代码,请询问,我将在下面发布。