Проблемы соединения приложения Nodejs с контейнером Sentinel Docker

У меня есть контейнер докера redis-sentinel (используя изображение joshula/redis-sentinelработает на ВМ. И у меня есть приложение NodeJS на другом компьютере, которое пытается подключиться к этому контейнеру. Подключение к Sentinel-Redis работает нормально, что я мог проверить, используя скрипт ниже.

var redis = require('ioredis')
var Promise = require('bluebird')
Promise.promisifyAll(redis.prototype)

var name = [{"host": "xxx.xxx.xxx.xxx", "port": 26379}]

this.client = new redis(
    {
        sentinels: name,
        name: "mymaster"
    }
)
this.client.on('connect', function() {
    console.log('connected:  REDIS');
});
this.client.on('end', function() {
    console.log('closed:  REDIS');
});
this.client.on("error", err => {
    console.error("Cache Error: " + err);
});

this.client.set('foo', 'bar');
this.client.get('foo')
    .then (function(data)
    {
        console.log('data from redis : '+data)
    }, function(err)
    {
        console.log(err)
    });

Тем не менее, когда я запускаю свое реальное приложение для узла, в журналах постоянно появляется ошибка ниже. Есть ли что-то, чего мне не хватает при создании клиента Redis?

[ioredis] Unhandled error event: Error: All sentinels are unreachable. Retrying from scratch after 20ms Last error: Connection is closed.
    at connectToNext (\node_modules\ioredis\lib\connectors\sentinel_connector.js:65:19)
    at \node_modules\ioredis\lib\connectors\sentinel_connector.js:98:9
    at \node_modules\ioredis\lib\connectors\sentinel_connector.js:135:14
    at tryCatcher (\node_modules\bluebird\js\release\util.js:16:23)
    at Promise.errorAdapter [as _rejectionHandler0] (\node_modules\bluebird\js\release\nodeify.js:35:34)
    at Promise._settlePromise (\node_modules\bluebird\js\release\promise.js:566:21)
    at Promise._settlePromise0 (\node_modules\bluebird\js\release\promise.js:614:10)
    at Promise._settlePromises (\node_modules\bluebird\js\release\promise.js:689:18)
    at Async._drainQueue (\node_modules\bluebird\js\release\async.js:133:16)
    at Async._drainQueues (\node_modules\bluebird\js\release\async.js:143:10)
    at Immediate.Async.drainQueues (\node_modules\bluebird\js\release\async.js:17:14)
    at runCallback (timers.js:672:20)
    at tryOnImmediate (timers.js:645:5)
    at processImmediate [as _immediateCallback] (timers.js:617:5)

0 ответов

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