ElasticSearch to Kafka事件 - 使用Logstash进行每次更改

时间:2017-10-05 18:45:57

标签: elasticsearch apache-kafka logstash

结束目标:连接Elasticsearch和kafka,并将ES索引中正在进行的更改事件发送到kafka。来自kafka,我让听众做进一步的处理。

方法:我使用了Logstash输入和输出插件。这是配置代码。

input {
        elasticsearch {
                hosts => ["localhost:9200"]
                index => "liferay-20116"
        }
}
output {
      kafka {
        topic_id => "elastic-topic-index"
        codec => json
      }
}

它正在运作,但有一个奇怪的问题。

当我听kafka时,它会读取ES中的所有文档,现在大约有176个文档。

一旦读取,它停止一段时间说2秒,然后再读完整个176个文档!

我不知道是什么问题,这是由于Logstash行为还是Kafka表现得很奇怪?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

这是此插件的标准行为 - 它将数据匹配推送到给定查询。如果您只想更改文档,唯一的解决方法是建立自己改变的知识 - 例如,您需要为条目设置时间戳,然后将此知识合并到发送给ES的查询中。

答案 1 :(得分:1)

我确实没有使用Logstash。

我正在使用ElasticSearch插件,它会在每次更改时将事件发送为Web套接字。

参考:https://codeforgeek.com/2017/10/elasticsearch-change-feed/