Как сделать запрос в SolrCloud? - PullRequest
0 голосов
/ 05 июня 2018

У меня есть приложение Node.js, и у меня был отдельный Solr, но затем наша компания решила использовать SolrCloud для обеспечения отработки отказа.

В автономном Solr у меня был только один сервер, и все мои запросы были такими: http://solr_server:8983/solr/mycore/select?indent=on&q=*:*&wt=json, поэтому все запросы вели к одному и тому же серверу все время.

Но теперь у меня есть 3 разных экземпляра с 1 узлом ZooKeeper и 1 Solr на каждом из них, и мои запросы выглядят так: http://solr_server_1:8983/solr/mycollection/select?q=*:*
А теперь вопрос: что, если solr_server_1 пойдетвниз?Как я могу получить свои результаты?Как я могу обрабатывать запросы в этом случае?

1 Ответ

0 голосов
/ 05 июня 2018

Если вы делаете это вручную: вам придется перехватывать исключение при сбое подключения, а затем повторить попытку следующего сервера в вашем списке.

let servers = ['ip1:8983', 'ip2:8983', 'ip3:8983']

Если вы используете библиотеку, которая поддерживает Zookeeper (т. Е. Она подключается к zookeeper, чтобы выяснить, что такое живые узлы), вы предоставляете клиенту список узлов zookeeper и позволяете ему выяснитьостальное. node-solr-smart-client - это клиент, который также поддерживает Zookeeper.

options = {
    zkConnectionString: 'ip1:2181,ip2:2181,ip3:2181',
    // etc.
}

solrSmartClient.createClient('my_solr_collection', options, function (err, solrClient) {
...