预处理节点(Ingest Node)

937 发布于: 2021-04-29 读完约需 1 分钟

概述

Elasticsearch会自动将索引请求重新路由到预处理节点,但是你也可以优化默认的路径。

自定义索引客户端

因为Elasticsearch会自动将索引请求重新路由到预处理节点,所以你可以不用配置或者指定任何路由信息。但是,如果你正在进行大量的预处理并且有专门的预处理节点,那么将索引请求直接发送到这些预处理节点是有必要的,这样可以避免集群中任何额外的跳转。

实现这一点最简单的方法是创建一个专用的“索引”客户端实例,并将其用于索引请求。

var pool = new StaticConnectionPool(new [] //预处理节点集合
{
    new Uri("http://ingestnode1:9200"),
    new Uri("http://ingestnode2:9200"),
    new Uri("http://ingestnode3:9200")
});
var settings = new ConnectionSettings(pool);
var indexingClient = new ElasticClient(settings);

开启预处理功能

在复杂的集群配置中,可以使用嗅探连接池和节点谓词来过滤出具有预处理功能的节点。这样使用你在不用重新配置NEST客户端的情况下便可以自定义集群。

var pool = new SniffingConnectionPool(new [] 
{
    new Uri("http://node1:9200"),
    new Uri("http://node2:9200"),
    new Uri("http://node3:9200")
});
var settings = new ConnectionSettings(pool).NodePredicate(n => n.IngestEnabled); 
var indexingClient = new ElasticClient(settings);

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

发表评论

登录用户才能发表评论, 请 登 录 或者 注册