ES 跨集群查询

首先需要保证多个集群的es版本要兼容
假设两个集群的名称为:cluster_1、cluster_2,需要实现在cluster_1上查询cluser_2的目标。

1、配置项

分为动态配置与静态配置,静态配置指在 cluster_1 的配置文件elasticsearch.yml 里加入 cluster_2 实例的信息;
动态配置指使用 http 接口的方式:
PUT _cluster/settings
{
"persistent": {
"cluster": {
"remote": {
"cluster_1": {
"seeds": [
"127.0.0.1:9300"
],
"transport.ping_schedule": "30s"
},
"cluster_2": {
"seeds": [
"xxx.xx.xx.xxx:9300"
],
"transport.compress": true,
"skip_unavailable": true
}
}
}
}
}
配置完在 cluster_1 访问:GET _remote/info 可以看到 cluser_2 的信息:


image.png

注:es集群之间的交互使用tcp协议,所以需要配9300端口,不能用9200,两者的区别如下:
ES节点和外部通讯使用9200;
ES节点之间通讯使用9300;

2、使用跨集群查询

在cluser_1请求:GET cluster_2:bss_index/_search,


image.png

可以正常访问。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。