moscajs / aedes-persistence-redis

Aedes persistence, backed by redis
MIT License
21 stars 23 forks source link

ioredis cluster option support? #17

Open jskim82 opened 7 years ago

jskim82 commented 7 years ago

The modules I have configured are shown below. 3 aedes Node Server(port : 1883) pm2 Cluster 1 Nginx Server(port : 40379) Load Balancer 3 Redis Master(port : 41379, port : 42379, port : 43379)

Process : Aedes -> Nginx -> Redis

Case 1 : Load Balancer Direct Connect

var aedesOption = { concurrency : 1000 , connectTimeout : 60000 , heartbeatInterval : 600000 }; aedesOption.persistence = require('aedes-persistence-redis')({port : 60379, host : '127.0.0.1'}) aedesOption.mq = require('mqemitter-redis')({port : 60379, host : '127.0.0.1'})

aedes = require('aedes')(aedesOption);

Error Log E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\bluebird\js\release\async.js:61 fn = function () { throw arg; }; ^

TypeError: Cannot convert undefined or null to object at returnSubsForClient (E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\aedes-persistence-redis\persistence.js:245:24) at returnSubs (E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\aedes-persistence-redis\persistence.js:239:20) at tryCatcher (E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\bluebird\js\release\util.js:16:23) at Promise.errorAdapter [as _rejectionHandler0] (E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\bluebird\js\release\nodeify.js:35:34) at Promise._settlePromise (E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\bluebird\js\release\promise.js:564:21) at Promise._settlePromise0 (E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\bluebird\js\release\promise.js:612:10) at Promise._settlePromises (E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\bluebird\js\release\promise.js:687:18) at Async._drainQueue (E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\bluebird\js\release\async.js:133:16) at Async._drainQueues (E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\bluebird\js\release\async.js:143:10) at Immediate.Async.drainQueues (E:\jskim\eclipse-workspace_mars\workspace_mars\aedes-sample\node_modules\bluebird\js\release\async.js:17:14) at runCallback (timers.js:637:20) at tryOnImmediate (timers.js:610:5) at processImmediate [as _immediateCallback] (timers.js:582:5)

Case 2 : Cluster Connect

var aedesOption = { concurrency : 1000 , connectTimeout : 60000 , heartbeatInterval : 600000 }; aedesOption.persistence = require('aedes-persistence-redis') ([ { port : 61379, host : '127.0.0.1' } , { port : 62379, host : '127.0.0.1' } , { port : 63379, host : '127.0.0.1' } ]) aedesOption.mq = require('mqemitter-redis') ([ { port : 61379, host : '127.0.0.1' } , { port : 62379, host : '127.0.0.1' } , { port : 63379, host : '127.0.0.1' } ])

aedes = require('aedes')(aedesOption);

mcollina commented 7 years ago

There is an open PR about that in #6. It's not finished yet, and this codebase is in a moment of shift. See also #10.

jskim82 commented 7 years ago

Thx ^.^