zookeeper、solrcloud 和 http 请求之间的关系
relationships among zookeeper, solrcloud, and http requests
我对此比较陌生。所以我试图了解 zookeeper
、solrcloud
和 http 请求之间的关系。
我的理解是:
Zookeeper
(可通过 2181 访问)保留 solrcloud
的配置文件。
并且所有 http 请求直接进入 solrcloud 实例,而不是通过 zookeeper
.
因此,在这种特殊情况下,zookeeper
不是用于路由 (API) 请求的能力吗?我真的认为情况不应该如此。但基于 solr
官方网站的教程。似乎所有的请求都需要通过solr
的8983端口。
Solr 使用 Zookeeper 来保持其集群状态(哪些服务器具有完整集合的哪些核心/分片/部分)以及配置文件和在整个集群中应该可用的任何其他内容。
请求本身是向 Solr 发出的,Solr 在后台使用来自 Zookeeper 的信息在内部将请求路由到正确的位置。客户端可以是 Cloud Aware(例如 SolrJ),并且可以自己直接查询 Zookeeper,然后立即联系正确的 Solr 服务器,而不是让 Solr 在内部路由请求。在 SolrJ 中,它被实现为 CloudSolrClient(或 CloudSolrServer,因为它可能在旧版本的 SolrJ 中被命名)(而不是常规的 SolrServer,它会联系您正在引用的 Solr 实例,然后从那里路由请求)。
如果你look at the documentation of CloudSolrClient,你可以看到它以 Zookeeper 信息作为参数,而不是 Solr 服务器地址。 SolrJ 向 Zookeeper 发出 ZK 请求,检索集群状态,然后直接向托管分片或集合的服务器发出 HTTP 请求。
我对此比较陌生。所以我试图了解 zookeeper
、solrcloud
和 http 请求之间的关系。
我的理解是:
Zookeeper
(可通过 2181 访问)保留 solrcloud
的配置文件。
并且所有 http 请求直接进入 solrcloud 实例,而不是通过 zookeeper
.
因此,在这种特殊情况下,zookeeper
不是用于路由 (API) 请求的能力吗?我真的认为情况不应该如此。但基于 solr
官方网站的教程。似乎所有的请求都需要通过solr
的8983端口。
Solr 使用 Zookeeper 来保持其集群状态(哪些服务器具有完整集合的哪些核心/分片/部分)以及配置文件和在整个集群中应该可用的任何其他内容。
请求本身是向 Solr 发出的,Solr 在后台使用来自 Zookeeper 的信息在内部将请求路由到正确的位置。客户端可以是 Cloud Aware(例如 SolrJ),并且可以自己直接查询 Zookeeper,然后立即联系正确的 Solr 服务器,而不是让 Solr 在内部路由请求。在 SolrJ 中,它被实现为 CloudSolrClient(或 CloudSolrServer,因为它可能在旧版本的 SolrJ 中被命名)(而不是常规的 SolrServer,它会联系您正在引用的 Solr 实例,然后从那里路由请求)。
如果你look at the documentation of CloudSolrClient,你可以看到它以 Zookeeper 信息作为参数,而不是 Solr 服务器地址。 SolrJ 向 Zookeeper 发出 ZK 请求,检索集群状态,然后直接向托管分片或集合的服务器发出 HTTP 请求。