有没有什么思路,可以在不改源码的情况下设置某类(boxtype)节点不参与rebalance?
比如很冷的数据,在删除索引时就有可能触发rebalance,这个行为意义不大,反而带来很多性能损耗。
比如利用分布式存储进行存算分离的场景,也会是不参与rebalance的收益更大。
比如很冷的数据,在删除索引时就有可能触发rebalance,这个行为意义不大,反而带来很多性能损耗。
比如利用分布式存储进行存算分离的场景,也会是不参与rebalance的收益更大。
5 个回复
Charele - Cisco4321
赞同来自: zmc
在allocation那边做也可以,不过那是后面分片的事了。
可以从前面节点这里入手。
那个modelNode就是代表一个节点,里面有节点名字。
判断一下,如果名字是es1,略过就可以了。
如果有兴趣,可以试下。
Charele - Cisco4321
赞同来自:
我想了3个,
1 某个索引(上的分片)不参与rebalance
2 某个节点(上的分片)不参与rebalance
3 某个节点不接受rebalance过来的分片
哪一个?
Ombres
赞同来自:
前提是所有的索引都有index.routing.allocation.require 配置。比如热数据到热节点。
然后设置冷索引的配置index.routing.allocation.require 到某个固定的节点名字,这样的话该索引只分配到该节点。可能得去除副本,不然副本好像没法分配,感觉不太安全。
Charele - Cisco4321
赞同来自:
Charele - Cisco4321
赞同来自:
虽然没有经过测试,
但我感觉ES还是比较“简单”的(相对Lucene),所以应该不会有隐患。
比如我不想让节点es1参与rebalance
1 只有两个节点,可以看到es1是可以接受分配给它的分片的:
2 加入es2,按理来说,这些分片会在这3个节点间做rebalance
但现在不会了