Я использую плагин Logstash для RabbitMQ, чтобы вытащить из RabbitMQ и отправить в Elasticsearch с помощью этого конвейера:
input {
rabbitmq {
queue => "Elasticsearch_Queue"
host => "rabbitmq"
exchange => "my_event_bus"
key => "SomeIntegrationEvent"
}
}
output {
elasticsearch {
hosts => [ "elasticsearch:9200" ]
}
stdout { codec => rubydebug }
}
Он работает нормально и создает очередь с именем Elasticsearch_Queue
и связывается с my_event_bus
обменом с помощью routing_key SomeIntegrationEvent
.
Мне нужно подписаться на несколько событий , но на документы плагинов.
2 ответа
Мы должны добавить несколько записей с одинаковыми queue
и exchange
, но разными key
, как показано ниже:
input {
rabbitmq {
queue => "Elasticsearch_Queue"
host => "rabbitmq"
exchange => "my_event_bus"
key => "SomeIntegrationEvent1"
}
rabbitmq {
queue => "Elasticsearch_Queue"
host => "rabbitmq"
exchange => "my_event_bus"
key => "SomeIntegrationEvent2"
}
}
Я получил ответ с эластичных форумов.
Поскольку {{ X0}} должна быть строкой, вы не можете явно привязать очередь к обмену, используя несколько ключей.
Я предлагаю сделать my_event_bus
обмен фанатами . Это направит каждое сообщение, доставленное в этот обмен, в связанную очередь.
Затем определите второй прямой обмен , который вы вручную связываете с первым обменом несколько раз, используя интересующие вас ключи маршрутизации (= события).
Новые вопросы
rabbitmq
RabbitMQ - это брокер сообщений с открытым исходным кодом, изначально внедряющий протокол AMQP с дополнительными протоколами обмена сообщениями, поддерживаемыми через подключаемую архитектуру. Этот тег следует использовать с вопросами, касающимися продукта брокера сообщений сервера RabbitMQ, или вопросами, касающимися исходного кода и реализации продукта RabbitMQ. Также может быть подходящим конкретный тег протокола, такой как amqp или mqtt, а также используемая ОС и язык программирования.