我读到elasticsearch河/河插件已被弃用。所以我们不能直接使用elasticsearch-kafka集成。如果我们想要这样做,那么我们需要一些java(或任何语言)层,将来自kafka的数据放到使用其apis的elastic search中。
另一方面-如果我们有kafka- logstash -elasticsearch -我们摆脱了上面的中间层,通过logstash实现,只需配置即可。但我不确定在两者之间设置logstash是否会产生开销?
我的理解是对的吗?提前感谢您的投入。
问候你,Priya
发布于 2016-08-22 19:55:02
你的问题很笼统。了解你的架构,它的目的和你所做的假设是很好的。
正如其文档中所述,Kafka是一个可大规模扩展的发布-订阅消息传递系统。我的假设是,您可以将其用作体系结构中的数据代理。
另一方面,Elasticsearch是一个搜索引擎,因此我假设您将其用作数据访问/搜索/聚合层。
这两个独立的系统需要连接器来创建适当的数据管道。这就是Logstash的用武之地。它允许您在Kafka和Elasticsearch之间创建数据流连接。它还允许您根据需要动态地更改数据。
理想情况下,Kafka使用原始数据事件。Elasticsearch存储对您的数据消费者有用的文档(web或移动应用程序,其他系统等),因此可以与原始数据格式有很大的不同。如果需要修改原始表单和ES文档之间的数据,Logstash可能很方便(请参阅filters stage)。
另一种方法是使用Kafka连接器,构建定制工具,例如基于Kafka流或消费者,但这真的取决于您的架构的概念-目的,堆栈,数据需求等。
https://stackoverflow.com/questions/34092526
复制相似问题