如何确保nest连接到elasticsearch客户端节点

zour9fqk  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(0)|浏览(264)

我的配置如下:
这台机器上运行着4个vm,每个vm都运行elasticsearch示例。
http://192.168.44.1:9200有 node.data: false 以及 node.master: false -专用客户端节点。
http://192.168.44.2:9200有 node.data: false 以及 node.master: true -专用主节点。
http://192.168.44.3:9200有 node.data: true 以及 node.master: true -有机会成为故障转移主节点的工作节点
http://192.168.44.4:9200有 node.data: true 以及 node.master: true -有机会成为故障转移主节点的工作节点
现在一切都很好。所以问题是,当我使用这个连接字符串时,如何确保我的客户机连接到正确的节点?

var node1 = new Uri("http://192.168.44.1:9200");
var node2 = new Uri("http://192.168.44.2:9200");
var node3 = new Uri("http://192.168.44.3:9200");
var node4 = new Uri("http://192.168.44.4:9200");

var _connectionPool = new SniffingConnectionPool(new List<Uri>() { node1, node2, node3, node4 });
var _settings = new ConnectionSettings(_connectionPool, defaultIndex: "testing")
    .SniffOnConnectionFault(false)
    .SniffOnStartup(false)
    .SniffLifeSpan(TimeSpan.FromMinutes(1));

我希望我的所有搜索只使用客户机节点(node1)执行,而索引则使用工作节点(node3,node4)执行。
我在文档中看到的建议设置 http.enabled: false 对于工作节点,所以它们根本不处理http请求,它们之间的通信是使用传输模块完成的。因此,如果我这样做,我将不得不减少我的连接池,只连接到客户机/主节点。这个设计好吗?
或者最好在webserver上运行elasticsearch示例的本地副本,将此节点设置为客户端并仅连接到它,同时vms中的节点将是worker(和一个专用的主节点)。但是,如果本地节点决定崩溃,如何确保集群故障转移呢?
任何问题-让我知道。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题