Kafka可以用作oracle和弹性搜索之间的消息服务吗?这种方法的任何缺点?
答案 0 :(得分:2)
Kafka Connect为您提供了JDBC Source和Elasticsearch Sink。
除了服务维护之外,我没有任何缺点。
请随意使用Logstash,但Kafka provides better resiliency和可扩展性。
答案 1 :(得分:1)
我过去曾尝试使用Sql服务器而不是Oracle,它运行良好,我相信你也可以尝试使用Oracle的相同方法,因为我知道我将在下面描述的logstash JDBC插件支持Oracle DB。
所以基本上你需要一个指向你的Oracle数据库实例的Logstash JDBC输入插件https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html,并使用Kafka Output插件https://www.elastic.co/guide/en/logstash/current/plugins-outputs-kafka.html将行推送到Kafka。
现在要读取您需要的Kafka内容,另一个Logstash实例(这是索引器)并使用Kafka输入插件https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html。最后使用Logstash索引器配置文件中的Elastic搜索输出插件将事件推送到Elastic Search。
所以管道看起来像这样, Oracle - > Logstash发货人 - >卡夫卡 - > Logstash Indexer - >弹性搜索。
总的来说,我认为这是将事件从数据库推送到弹性搜索的一种非常可扩展的方式。现在,如果你看一下缺点,有时你可能会觉得管道中有太多的组件,尤其是当你遇到故障时可能会感到沮丧。因此,您需要在每个级别进行适当的控制和监视,以确保您具有上述功能正常的数据聚合管道。试一试,祝你好运!