Неожиданная ошибка при подключении к ES-кластеру с помощью SniffingConnectionPool

Я получаю следующую ошибку при подключении к кластеру ES с помощью SniffingConnectionPool в C#.

При анализе значения обнаружен неожиданный символ: [. Путь '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.
        }
    }

Я наконец понял это, значение discovery.zen.ping.unicast.hosts не должно быть заключено в квадратные скобки, чтобы клиент эластичного поиска NEST работал. При изменении на discovery.zen.ping.unicast.hosts: "192.168.1.9:9300" он работает нормально. Странно, что ES работает нормально, когда 192.168.1.9:9300 заключено в ["192.168.1.9:9300"], но библиотека NEST выдает исключение сериализации JSON.

Aashish Upadhyay 01.05.2018 23:30

Какую версию NEST вы используете и на какую версию Elasticsearch вы ориентируетесь?

Russ Cam 02.05.2018 01:09

@RussCam Я использую elasticsearch-6.2.4 и Nest v5.3.0.

Aashish Upadhyay 02.05.2018 16:33

Пожалуйста, используйте NEST 6.x (последняя версия 6.1.0) с Elasticsearch 6.2.4. Это не должно быть проблемой с NEST 6.x

Russ Cam 02.05.2018 16:48
0
4
96
0

Другие вопросы по теме