如何使用Elastisch连接到多个ElasticSearch主机?

时间:2017-04-12 11:16:13

标签: elasticsearch clojure elastisch

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

(esr/connect "localhost:9200")

但我担心可用性,因此计划运行ElasticSearch集群。

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

2 个答案:

答案 0 :(得分: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

您也可以通过以下链接详细了解相同内容 about Zen discovery in clustered enviroment

Important configuration for elasticsearch

答案 1 :(得分:0)

使用像elasticsearch这样的服务的一个好处是,它负责处理等式的可用性部分,因为ES本身将处理下降的节点。您必须智能地配置它,这超出了本问题/答案的范围。

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

因此,您可以根据需要随时拨打esr/connect尽可能多的网址,但您不需要。我建议阅读elasticsearch's documentation以熟悉体系结构,节点,集群,索引,分片等 - 并正确配置您的elasticsearch集群。但就代码本身而言,您与架构隔离,无需担心这些细节。对弹性搜索的REST API也是如此,因此弹性包装也提供了这一点。