Проблемы соединения приложения 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)