Kafka 可以用作 oracle 和弹性搜索之间的消息传递服务吗?这种方法有什么缺点吗?
2 回答
Kafka Connect为您提供JDBC Source和Elasticsearch Sink。
除了服务维护之外,没有我知道的缺点。
随意使用 Logstash,但Kafka 提供了更好的弹性和可扩展性。
我过去曾用 Sql server 而不是 Oracle 进行过尝试,效果很好,而且我相信您也可以尝试使用 Oracle 的相同方法,因为我知道我将在下面描述的 logstash JDBC 插件支持 Oracle D B。
所以基本上你需要一个 Logstash JDBC 输入插件https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html指向你的 Oracle 数据库实例并将行推送到 Kafka 使用Kafka 输出插件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 _ 最后使用 Logstash 索引器配置文件中的 Elastic search 输出插件将事件推送到 Elastic Search。
所以管道看起来像这样, Oracle -> Logstash Shipper -> Kafka -> Logstash Indexer -> Elastic search。
所以总的来说,我认为这是一种将事件从数据库推送到弹性搜索的非常可扩展的方式。现在,如果您查看缺点,有时您会觉得管道中的组件太多,并且可能会令人沮丧,尤其是当您遇到故障时。因此,您需要在每个级别进行适当的控制和监控,以确保您拥有上述功能正常的数据聚合管道。试一试,祝你好运!