ES天生就是一个分布式架构,同时也支持横向水平扩展。但是,集群节点不可能无限增加。因为,当集群meta信息(节点,索引,集群状态)过多,会导致集群更新压力变大,单个Active Master会成为性能瓶颈,导致整个集群无法正常工作。因此,ES官方推出了一个跨集群搜索的功能(Cross Cluster Search),我们今天就来一探究竟。
要执行跨集群搜索,必须至少配置一个远程集群。在每一个集群中都需要如下配置:
1,使用 cluster.remote 属性
2, 种子(seeds)是远程集群中的节点列表,用于在注册远程集群时检索集群状态
案例所需条件:
2个ES集群、kibana安装<自行安装>
网络互通:同VPC
拓扑如下:
集群1、集群2信息,如下:
接下来进行配置,我们在cluser1也就是端口地址为 5601 的 Kibana,我们打开输入如下命令:
我们可以使用GET _remote/info查看CSS的连接状态,如下:
同样,把上面的配置在cluster2上再去执行一次。有几个集群就执行几次此命令。那么这样,一个CSS集群就这样配置完成了。
首先,我们在集群1上写入点数据,注意kibana端口是5601如下:
其次:我们去集群2上,搜索是否能拿到集群1上的数据呢?注意看kibana端口8080,如下:
使用API GET remote_cluster:twitter/_search
从上面我们可以看出来,我们可以对位于 cluster1 的 twitter 索引进行搜索。
当然,如果查询多个集群多个数据的话,可以使用下面的API
GET /users,cluster_name:index,cluster_name:index/_search
同样,我们可以在kibana配置探索数据的方式去实现远程集群的数据本地展示的结果,如下:
因为我们默认的 index 是 remote_cluster: kibana_sample_data_flights,所以我们的 Discover 默认的情况先显示的是所有关于位于 cluster_1 上的 kibana_sample_data_flights 索引数据。我们可以在 cluster_2 对这些数据进行分析。非常方便。
通过跨级群配置,我们实现了多个ES集群之间的数据的探索、管理。大大的解决了单集群水平扩展能力不足的问题。那么这就是ES CCS。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。