我有3个不同的Elasticsearch容器(我将在下一个命令run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.9.2中部署它们)
我想将它们作为3个集群使用,每个集群中有一个节点。之后,我将其中的两个定义为一个集群的远程集群(端口9200是“主”,9201 9202是远程的)。为了定义它,我使用:
cluster:
remote:
cluster_one:
seeds: 127.0.0.1:9201
cluster_two:
seeds: 127.0.0.1:9202我试着搜索
GET /cluster_one:twitter/_search
{
"query": {
"match": {
"user": "kimchy"
}
}
}但它不起作用,我认为它与我定义集群的方式有关,但我没有发现我做错了什么。
发布于 2022-03-03 09:37:53
文档告诉我们:
Cross-cluster search and cross-cluster replication require the remote_cluster_client role.此外,远程集群页面告诉我们
role: By default, any non-master-eligible node can act as a gateway node. Dedicated master nodes are never selected as gateway nodes.由于默认情况下,所有节点都具有角色master和data,因此没有节点可以充当网关节点,跨集群操作无法工作。
我有一个正在工作的那里。
静态远程集群定义需要在以下集群中使用env变量(如我在提供的示例中所做的)或elasticsearch.yml对每个节点执行。
您需要匹配的url是承载网关节点的码头服务的url。
端口需要匹配远程节点的运输港。
https://stackoverflow.com/questions/64371522
复制相似问题