В настоящее время я разрабатываю плагин вывода концентраторов событий Azure для Logstash, и у меня возникла проблема, когда после работы в течение примерно 30 минут logstash на некоторое время застревает, поскольку вывод в концентраторы событий занимает слишком много времени.
Мой технологический стек:
Телеграф отправляет в logstash по tcp.
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?
Если вам нужно больше контекста или кода, просто спросите, и я опубликую ниже.