首页 > 解决方案 > 使用 SniffingConnectionPool 连接到 ES 集群时出现意外错误

问题描述

在 C# 中使用 SniffingConnectionPool 连接 ES 集群时出现以下错误。

解析值时遇到意外字符:[。路径 'nodes.ZfZk0Y0PQWqg_dkfJZ9DSg.settings['discovery.zen.ping.unicast.hosts']',第 1 行,位置 439。

它显然与 JSON 解析有关,但我不知道如何解决这个问题。任何帮助将不胜感激

以下是我配置集群的方式:

Master Node Config:

cluster.name: elasticsearch_marvel
node.name: "Wolverine"
node.master: true
node.data: true
network.host: 192.168.1.9
discovery.zen.ping.unicast.hosts: ["192.168.1.10:9300"]
discovery.zen.minimum_master_nodes: 1

Data Node Config:

cluster.name: elasticsearch_marvel
node.name: "Deadpool"
node.master: false
node.data: true
network.host: 192.168.1.10
discovery.zen.ping.unicast.hosts: ["192.168.1.9:9300"]
discovery.zen.minimum_master_nodes: 1

这是我尝试连接到集群的方式:

    public ElasticClient CreateClient(IEnumerable<Uri> uris)
    {
        var connectionPool = new SniffingConnectionPool(uris);
        var settings = new ConnectionSettings(connectionPool);
        var client = new ElasticClient(settings);
        return client;
    }

    public bool TestConnection()
    {
        try
        {
            var uris = new List<Uri>();
            uris.Add(new Uri("http://192.168.1.9:9200/"));
            uris.Add(new Uri("http://192.168.1.10:9200/"));
            var client = CreateClient(uris);
            var response = client.Ping();
            return response.IsValid;
        }
        catch (Exception ex)
        {
            //Unexpected character encountered while parsing value: [. Path 'nodes.ZfZk0Y0PQWqg_dkfJZ9DSg.settings['discovery.zen.ping.unicast.hosts']', line 1, position 439.
        }
    }

标签: elasticsearchnestelasticsearch-net

解决方案


推荐阅读