文章目录

  • 1. 设置remote cluster
  • 2. cross cluster search (跨集群的搜索)
    • 1. 设置remote cluster
    • 2. 从remote cluster 进行搜索
    • 3. 跳过不可用的remote cluster
  • 3. remote cluster search的两种模式

集群可以配置关联远程的集群。从而实现跨集群的一些搜索等操作。

1. 设置remote cluster

可以通过cluster setting api进行动态设置,也可以在 elasticsearch.yml文件中进行设置

cluster:remote:cluster_one: seeds: 127.0.0.1:9300transport.ping_schedule: 30s cluster_two:seeds: 127.0.0.1:9301transport.compress: true skip_unavailable: true 

seeds是配置的对应的remote cluster的一个node,
transport.ping_schedule 设置了tcp层面的活性监听
skip_unavailable 设置为true的话,当这个remote cluster不可用的时候,就会忽略,默认是false,当对应的remote cluster不可用的话,则会报错。

PUT _cluster/settings
{"persistent": {"cluster": {"remote": {"cluster_one": {"seeds": ["127.0.0.1:9300"],"transport.ping_schedule": "30s"},"cluster_two": {"seeds": ["127.0.0.1:9301"],"transport.compress": true,"skip_unavailable": true},"cluster_three": {"seeds": ["127.0.0.1:9302"]}}}}
}

在使用api进行动态设置的时候每次都要把seeds带上,如果想要delete一个remote cluster,则把对应的seeds设置为null即可。

2. cross cluster search (跨集群的搜索)

在进行跨集群的搜索之前,首先我们要有一个remote cluster

1. 设置remote cluster

PUT _cluster/settings
{"persistent": {"cluster": {"remote": {"cluster_one": {"seeds": ["127.0.0.1:9300"]},"cluster_two": {"seeds": ["127.0.0.1:9301"]},"cluster_three": {"seeds": ["127.0.0.1:9302"]}}}}
}

2. 从remote cluster 进行搜索

假如我们想搜索cluster_one 中的twitter index,我们可以这样搜索

GET /cluster_one:twitter/_search
{"query": {"match": {"user": "kimchy"}}
}

对应的返回是这个样子

{"took": 150,"timed_out": false,"_shards": {"total": 1,"successful": 1,"failed": 0,"skipped": 0},"_clusters": {"total": 1,"successful": 1,"skipped": 0},"hits": {"total" : {"value": 1,"relation": "eq"},"max_score": 1,"hits": [{"_index": "cluster_one:twitter", "_type": "_doc","_id": "0","_score": 1,"_source": {"user": "kimchy","date": "2009-11-15T14:12:12","message": "trying out Elasticsearch","likes": 0}}]}
}

如果想从当前cluster,还有多个remote cluster搜索,可以这样做

GET /twitter,cluster_one:twitter,cluster_two:twitter/_search
{"query": {"match": {"user": "kimchy"}}
}

对应的返回会是


{"took": 150,"timed_out": false,"num_reduce_phases": 4,"_shards": {"total": 3,"successful": 3,"failed": 0,"skipped": 0},"_clusters": {"total": 3,"successful": 3,"skipped": 0},"hits": {"total" : {"value": 3,"relation": "eq"},"max_score": 1,"hits": [{"_index": "twitter", "_type": "_doc","_id": "0","_score": 2,"_source": {"user": "kimchy","date": "2009-11-15T14:12:12","message": "trying out Elasticsearch","likes": 0}},{"_index": "cluster_one:twitter", "_type": "_doc","_id": "0","_score": 1,"_source": {"user": "kimchy","date": "2009-11-15T14:12:12","message": "trying out Elasticsearch","likes": 0}},{"_index": "cluster_two:twitter", "_type": "_doc","_id": "0","_score": 1,"_source": {"user": "kimchy","date": "2009-11-15T14:12:12","message": "trying out Elasticsearch","likes": 0}}]}
}

3. 跳过不可用的remote cluster

我们可以设置跳过不可用的remote cluster,就是使用上面说的skip_unavailable

PUT _cluster/settings
{"persistent": {"cluster.remote.cluster_two.skip_unavailable": true}
}

3. remote cluster search的两种模式

有两种模式来进行remote cluster search,这两种是基于不同的网络情况来做的选择
1.最小化网络通信次数
这种情况也是默认的情况,当前es的协调节点针对一次请求只访问对应的remote cluster一次,拉取回来所有的的数据,减少了网络交互的次数,减少了网络延迟。

2.非最小化网络通信次数
当前es的协调节点对应一次search会请求remote cluster两次,一次是获取remote cluster的shard信息,第二次是直接请求remote的对应的shard进行数据获取。
感觉这种方式对于网络比较好的集群来说,效果更好,减少了一次数据聚合的过程,直接在当前cluster的协调节点对数据进行组装即可。

08.remote_cluster配置相关推荐

  1. 计算机查看硬件win10,win10查看硬件配置_win10查看硬件详细配置

    2016-12-18 08:01:36 你好,据我所知,win7怎么看硬件配置:1可以使用360安全卫士,选择工具驱动大师进行查看.2系统下查询. 在开始-运行中输入"dxdiag" ...

  2. 华为交换配置之VLAN配置。

    每天进步一点点! 08   vlan 配置与原理 vlan   虚拟局域网 作用:实现同一vlan的设备才可以进行通信,不同vlan不能通信. vlan tag:接口配置vlan后发生数据会携带相应的 ...

  3. python查看电脑配置_查看电脑配置_如何查看电脑配置参数

    2016-11-30 15:58:27 首选,把电脑打开,然后再桌面找到我的电脑(或者计算机)这个图标找到之后就对着这个图片单击右键,会出现一些属性栏,选择属性,单击属性之后会出现一个对话框,然后再单 ...

  4. 收下这份来自GitHub的神器,一图搞定Matplotlib!

    公众号关注 "视学算法" 设为 "星标",重磅干货,第一时间送达! 转自 | 早起python 今天的推送没有太多废话,给大家分享一位GitHub大神制作的Ma ...

  5. DM368启动串口打印分析

    DM36x initialization passed! TI UBL Version: 1.50 Booting Catalog Boot Loader                  //启动目 ...

  6. hadoop生态搭建(3节点)

    软件:CentOS-7    VMware12    SSHSecureShellClient shell工具:Xshell 规划 vm网络配置 01.基础配置 02.ssh配置 03.zookeep ...

  7. Tomcat9+eclipse如何发布网站

    前提:现在电脑上已经安装了eclipse,并且能够正常进行javase的练习.下面开始第一次运行javaee,演示如何应用tomcat+eclipse发布一个网站. 一.首先下载tomcat9,并解压 ...

  8. 微信公众号Java开发-笔记02【开发接入准备、开发接入】

    学习视频网址:哔哩哔哩网站 微信公众号开发-Java版 [P01-P02]微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] [P03-P04]微信公众号Java开发-笔记02[开发接入 ...

  9. git 安装_Windows系统Git安装教程(详解Git安装过程)

    今天更换电脑系统,需要重新安装Git,正好做个记录,希望对第一次使用的朋友能有所帮助! 获取Git安装程序 到Git官网下载,网站地址:https://git-scm.com/downloads 因为 ...

最新文章

  1. 用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本
  2. java取geosever数据_Geoserver - 连接到SQL Server 2008 Express并获取数据
  3. Balanced Binary Tree
  4. 【Keras】30 秒上手 Keras+实例对mnist手写数字进行识别准确率达99%以上
  5. oracle scn隐藏参数,Oracle隐含参数scn不一致启动
  6. 数据结构 6-0 图
  7. 理解了这三点,才敢说自己会写Python代码
  8. POI读取excel文件
  9. LFS6.3安装全过程(一)
  10. 调用webservice服务方式总结
  11. 台式计算机有线无线网卡设置,电脑无线网卡如何使用 电脑外置无线网卡详细使用图文教程...
  12. 明日之后服务器维护到几点,明日之后维护最新资讯
  13. CS书籍、代码资源下载网址
  14. 微软发布Windows 10:连Windows 7都能免费升级了
  15. [转]虚拟化系列-Windows server 2012 Remote桌面与应用
  16. vue打包后在ie浏览器下访问报语法错误
  17. Elasticsearch别名(aliases)使用
  18. linux基础知识和命令
  19. android闪屏问题
  20. 戴尔服务器的安装维护和调试,服务器的安装与维护技巧——数据湾

热门文章

  1. C++中__uuidof是干什么用的
  2. 手把手教你玩转ARP包(二)
  3. TeamCity和GitLab整合
  4. 超清晰的 DNS 原理入门指南
  5. 2020年前必须掌握的数据库面试问题~
  6. 深度解密Go语言之基于信号的抢占式调度
  7. 腾讯2020校园招聘---假期
  8. 音视频技术开发周刊 | 204
  9. 【线上直播】Xilinx低延时、高质量实时视频服务技术实践
  10. Netflix如何通过支持TLS 1.3提供更安全高效的播放体验