gpt4 book ai didi

elasticsearch - Elasticsearch集群上的路由是自动的吗?

转载 作者:行者123 更新时间:2023-12-03 02:05:29 25 4
gpt4 key购买 nike

我使用的是完全默认的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(即您正在查询数据),则向其发送请求的节点将:
  • 将请求转发到所有碎片
  • 等待他们的回复
  • 汇总响应
  • 发送回请求的客户端

  • 有关更多信息,请参见 Routing a document

    关于elasticsearch - Elasticsearch集群上的路由是自动的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27211059/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com