我使用的是完全默认的ES设置,并在我的本地网络上启动并运行了一个节点。因此,我从以下一个节点开始:
http://10.10.1.1:9200
并得到...
$ curl -XGET 'http://10.10.1.1:9200/_cluster/health?pretty=true'
{
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 5,
"active_shards" : 10,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0
}
我在启动第二个实例
http://10.10.1.2:9200
现在,它起作用了,他们彼此看到了,节点的数量增加了,自动发生了惊人的ES魔术,太好了!但是现在我仍然只能ping ...
$ curl -XGET 'http://10.10.1.1:9200/myindex/mytype/1'
...并且请求将被定向到/ both /节点?那就是:我是否需要更改任何其他设置,以使第一个端点在负担过重时将工作分配给第二个服务器,还是第一个自动成为一种将任务分配给其余集群的路由器?
我想了解我需要什么配置,以便可以在仅ping通单个URL的同时启动n个实例,并使工作分配到最佳状态。
它是自动的-通常您不需要做任何进一步的事情。
索引分为碎片,并且碎片分布在您拥有的节点上。添加节点时,ES将自动重新分配碎片。
数据根据_id的哈希值分配给索引中的分片。在此请求中:
curl -XGET 'http://10.10.1.1:9200/myindex/mytype/1'
您已指定_id(1),以便ES可以将请求直接转发到包含数据的分片。如果您尚未指定_id(即,您正在查询数据),则向其发送请求的节点将:
有关更多信息,请参见路由文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句