文章目录
1.背景
转载并且补充:https://blog.csdn.net/wangzhen3798/article/details/84069909
接触Elasticsearch也快半年时间了,一直也没弄明白如何的关闭ES和ES集群。经常在测试和生产环境遇到这样的问题“重启ES后数据怎么没了?”,“启动ES后,怎么一直有大量的数据在迁移?”
2.问题原因
其本质原因有两点:
- ES中的数据不是实时写入磁盘的。数据进入ES后先进入data buffer和log buffer,然后进入数据段,最后再特定时机下才刷入磁盘。即在内存中有很多数据是没写入磁盘的。
- ES的自动分片机制。当集群发现经过一分钟后(index.unassigned.node_left.delayed_timeout参数设置)还连接不上某个节点,就会把集群内的数据重新进行分布,即使后来节点重新连接上,原来的数据因为重新分布也无效了。