如何使用 Kafka Elasticsearch Sink Connector 写入多个不同的 Elasticsearch 集群
How to write to multiple distinct Elasticsearch clusters using the Kafka Elasticsearch Sink Connector
是否可以使用带有 Elasticsearch Sink Connector 的单个 Kafka 实例写入具有相同索引的不同 Elasticsearch 集群? Documentation。源数据可以是后端数据库或应用程序。一个示例用例是一个集群可用于实时搜索,另一个可用于分析。
如果可能,我该如何配置接收器连接器?如果没有,我可以想到几个选项:
- 使用 2 个 Kafka 实例,每个实例指向不同的 Elasticsearch 集群。要么写入两者,要么写入一个并从中复制到另一个。
- 使用单个 Kafka 实例并编写将写入两个集群的流处理器。
还有其他的吗?
是的,你可以做到。您可以使用单个 Kafka 集群和单个 Kafka Connect worker。
一个连接器可以写入一个 Elasticsearch 实例,因此如果您有多个目标 Elasticsearch,则需要配置多个连接器。
运行 Kafka Connect 的通常方式是处于“分布式”模式(即使在单个实例上),然后您通过 REST API 提交一个或多个连接器配置。
您不需要 Java 客户端即可使用 Kafka Connect - 它只是配置。每个连接器的配置说明从哪里获取数据(哪个 Kafka 主题)以及将数据写入哪里(哪个 Elasticsearch 实例)。
要了解有关 Kafka Connect 的更多信息,请参阅 this talk, this short video, and this specific tutorial Kafka Connect 和 Elasticsearch
是否可以使用带有 Elasticsearch Sink Connector 的单个 Kafka 实例写入具有相同索引的不同 Elasticsearch 集群? Documentation。源数据可以是后端数据库或应用程序。一个示例用例是一个集群可用于实时搜索,另一个可用于分析。
如果可能,我该如何配置接收器连接器?如果没有,我可以想到几个选项:
- 使用 2 个 Kafka 实例,每个实例指向不同的 Elasticsearch 集群。要么写入两者,要么写入一个并从中复制到另一个。
- 使用单个 Kafka 实例并编写将写入两个集群的流处理器。
还有其他的吗?
是的,你可以做到。您可以使用单个 Kafka 集群和单个 Kafka Connect worker。 一个连接器可以写入一个 Elasticsearch 实例,因此如果您有多个目标 Elasticsearch,则需要配置多个连接器。
运行 Kafka Connect 的通常方式是处于“分布式”模式(即使在单个实例上),然后您通过 REST API 提交一个或多个连接器配置。
您不需要 Java 客户端即可使用 Kafka Connect - 它只是配置。每个连接器的配置说明从哪里获取数据(哪个 Kafka 主题)以及将数据写入哪里(哪个 Elasticsearch 实例)。
要了解有关 Kafka Connect 的更多信息,请参阅 this talk, this short video, and this specific tutorial Kafka Connect 和 Elasticsearch