0

目前我连接到 ElasticSearch 集群如下:

(esr/connect "localhost:9200")

但我担心可用性,所以计划运行一个 ElasticSearch 集群。

如何修改我的 Elastisch 代码以连接到集群(这样如果一个节点不可用,我可以回退到另一个节点)?默认情况下会这样做吗?ElasticSearch java rest 客户端似乎提供了此功能,Elastisch 也提供此功能吗?

4

2 回答 2

1

您可以设置具有多个主机的集群,这可以使用 elasticsearch.yaml 配置文件进行配置,例如:

.....
.....
discovery.zen.ping.unicast.hosts: ['192.168.10.1:9300', '192.168.10.2:9300']

also elect one node as master and other as slave or data node

# Allow this node to be eligible as a master node (enabled by default):
#
node.master: true
#
# Allow this node to store data (enabled by default):
#
node.data: true

您也可以通过以下有关集群环境中 Zen 发现的链接来探索更多相同的 内容

elasticsearch的重要配置

于 2017-04-13T12:08:46.273 回答
0

使用像 elasticsearch 这样的服务的好处之一是它处理了等式的可用性部分,因为 ES 本身将处理节点故障。您确实必须对其进行智能配置,这超出了此问题/答案的范围。

这里的connect函数实际上并没有连接;它基本上只是创建一个 URI 和选项,当你调用一个类似的函数时clojurewerkz.elastisch.rest.document/search,你给它连接数据,然后在实际的网络操作中使用它。

因此,您可以随意调用任意数量esr/connect的 URL,但您不需要这样做。我建议阅读elasticsearch 的文档以熟悉架构、节点、集群、索引、分片等——并正确配置您的 elasticsearch 集群。但就代码本身而言,您与架构隔离,无需担心这些细节。elasticsearch 的 REST API 也是如此,因此 Elastisch 包装器也提供了这一点。

于 2017-04-12T13:59:48.487 回答