Можно ли использовать Kafka в качестве службы обмена сообщениями между oracle и asticsearch

Можно ли использовать Kafka в качестве службы обмена сообщениями между поиском оракула и упругим поиском? есть ли недостатки этого подхода?

2 ответа

Kafka Connect предоставляет вам JDBC Source и Elasticsearch Sink.

Никаких минусов, о которых я знаю, кроме сервисного обслуживания.

Не стесняйтесь использовать Logstash, но Kafka обеспечивает лучшую отказоустойчивость и масштабируемость.

Я пробовал это в прошлом с сервером Sql вместо Oracle, и он отлично работает, и я уверен, что вы могли бы попробовать тот же подход с Oracle, так как я знаю, что плагин logstash JDBC, который я собираюсь описать ниже, имеет поддержку Oracle DB.

Так что в основном вам понадобится входной плагин Logstash JDBC https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html который указывает на ваш экземпляр БД Oracle и передает строки в Kafka, используя плагин Kafka Output https://www.elastic.co/guide/en/logstash/current/plugins-outputs-kafka.html.

Теперь для чтения содержимого из Kafka вам понадобится другой экземпляр Logstash (это индексатор) и используйте входной плагин Kafka https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html. И, наконец, используйте плагин вывода Elastic search в файле конфигурации индексатора Logstash, чтобы отправить события в Elastic Search.

Таким образом, конвейер будет выглядеть так: Oracle -> Logstash Shipper -> Kafka -> Logstash Indexer -> Эластичный поиск.

В общем, я думаю, что это довольно масштабируемый способ передачи событий из вашей БД в Elastic search. Теперь, если вы посмотрите на недостатки, порой вы можете почувствовать, что в вашем конвейере слишком много компонентов, и это может разочаровать, особенно если у вас возникают сбои. Поэтому вам необходимо установить соответствующие элементы управления и мониторинга на каждом уровне, чтобы убедиться, что у вас есть работающий конвейер агрегации данных, который описан выше. Попробуйте и удачи!

Другие вопросы по тегам