elasticsearch服务节点重启时,是否存在流量漂移,如何优化?
2016-06-21 10:43
417 查看
(1)节点离开
在elasticsearch集群中,假设NodeA因为种种原因退出集群,在NodeA上的Shard分片情况(ShardA是主分片,ShardB是某一分片副本)
在存活节点上找到ShardA的副本,将该副本升格为主分片
由于ShardB这一分片副本丢失,所以会重新创建相应的分片副本
在存活的节点中对于分片进行再平衡
这样做的目的是保证每个分片都有足够的副本,可以避免数据丢失。需要注意的是,步骤二和步骤三牵涉到大量的网络I/O操作。
(2)节点返回加入集群
如果离开的节点重新加入集群,elasticsearch为了对数据分片(shard)进行再平衡,会为重新加入的NodeA再次分配数据分片(Shard), 这会再次导致大量的网络I/O操作。
(3)延迟副本的重新分配
如果NodeA在离开前上面存在副本ShardB,重新加入之后还是有副本ShardB,看起来一样,但其实中间已经进行了大量的网络I/O,那么有没有办法延迟副本的重新分配呢,这样会冒丢失数据的可能(如果在NodeA重新加入之前,其它节点也挂了), 但是可以节省相应的网络开销。
延迟副本分配可以通过设置参数 index.unassigned.node_left.delayed_timeout 来实现,该参数动态可调,默认值是1分钟(1m)
上述脚本将副本重新分配延迟到5分钟之后。
官网链接:https://www.elastic.co/guide/en/elasticsearch/reference/2.3/delayed-allocation.html
在elasticsearch集群中,假设NodeA因为种种原因退出集群,在NodeA上的Shard分片情况(ShardA是主分片,ShardB是某一分片副本)
在存活节点上找到ShardA的副本,将该副本升格为主分片
由于ShardB这一分片副本丢失,所以会重新创建相应的分片副本
在存活的节点中对于分片进行再平衡
这样做的目的是保证每个分片都有足够的副本,可以避免数据丢失。需要注意的是,步骤二和步骤三牵涉到大量的网络I/O操作。
(2)节点返回加入集群
如果离开的节点重新加入集群,elasticsearch为了对数据分片(shard)进行再平衡,会为重新加入的NodeA再次分配数据分片(Shard), 这会再次导致大量的网络I/O操作。
(3)延迟副本的重新分配
如果NodeA在离开前上面存在副本ShardB,重新加入之后还是有副本ShardB,看起来一样,但其实中间已经进行了大量的网络I/O,那么有没有办法延迟副本的重新分配呢,这样会冒丢失数据的可能(如果在NodeA重新加入之前,其它节点也挂了), 但是可以节省相应的网络开销。
延迟副本分配可以通过设置参数 index.unassigned.node_left.delayed_timeout 来实现,该参数动态可调,默认值是1分钟(1m)
PUT /_all/_settings { "settings": { "index.unassigned.node_left.delayed_timeout": "5m" } }
上述脚本将副本重新分配延迟到5分钟之后。
官网链接:https://www.elastic.co/guide/en/elasticsearch/reference/2.3/delayed-allocation.html
相关文章推荐
- 巧用mysql提示符prompt清晰管理数据库的方法
- 两大步骤教您开启MySQL 数据库远程登陆帐号的方法
- phpmyadmin 4+ 访问慢的解决方法
- linux系统下实现mysql热备份详细步骤(mysql主从复制)
- CentOS 5.5下安装MySQL 5.5全过程分享
- MySQL复制的概述、安装、故障、技巧、工具(火丁分享)
- MySQL中删除重复数据的简单方法
- 使用ElasticSearch6.0快速实现全文搜索功能的示例代码
- elasticsearch批量数据导入和导出
- 使用ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务
- ElasticSearch 使用心得
- ES中如何使用逗号来分词
- ElasticSearch 守护进程 JSW
- elasticsearch2.3安装以及集群部署
- elasticsearch增删改查
- Elasticsearch2.2.0数据操作
- Elasticsearch2.2.0安装ik中文分词
- Elasticsearch2.2.0安装pinyin插件
- Elasticsearch Client(JAVA API) JAVA实例
- ElasticSearch简单介绍