{"action":"created","issue":{"url":"https://api.github.com/repos/antirez/disque/issues/164","repository_url":"https://api.github.com/repos/antirez/disque","labels_url":"https://api.github.com/repos/antirez/disque/issues/164/labels{/name}","comments_url":"https://api.github.com/repos/antirez/disque/issues/164/comments","events_url":"https://api.github.com/repos/antirez/disque/issues/164/events","html_url":"https://github.com/antirez/disque/issues/164","id":132524289,"number":164,"title":"Inbuilt incompatibility with port mapping (such as in Docker)","user":{"login":"therealbill","id":467499,"avatar_url":"https://avatars.githubusercontent.com/u/467499?v=3","gravatar_id":"","url":"https://api.github.com/users/therealbill","html_url":"https://github.com/therealbill","followers_url":"https://api.github.com/users/therealbill/followers","following_url":"https://api.github.com/users/therealbill/following{/other_user}","gists_url":"https://api.github.com/users/therealbill/gists{/gist_id}","starred_url":"https://api.github.com/users/therealbill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/therealbill/subscriptions","organizations_url":"https://api.github.com/users/therealbill/orgs","repos_url":"https://api.github.com/users/therealbill/repos","events_url":"https://api.github.com/users/therealbill/events{/privacy}","received_events_url":"https://api.github.com/users/therealbill/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-02-09T20:26:52Z","updated_at":"2016-02-15T21:59:58Z","closed_at":null,"body":"The decision to make the cluster bus a static \"base port +10000\" makes it impossible to use in a default Docker setup. It is better that this is configurable, and even better would discoverable.\r\n\r\nFor discoverability it would be reasonable enough to add the cluster bus port to the hello message and have the initial handshake after `cluster meet` be to connect, issue hello, then use the port returned to connect for cluster administration. This isn't very dissimilar to the sentinel+client method of Redis. It isn't leaking anything a potential invader can't already figure out so there is no leakage. Ideally this would be how to introduce a member to a cluster.\r\n\r\nHowever, that alone does not solve the underlying problem. We need the equivalent of `sentinel announce-port`, and it needs to be a run-time configurable. With those additions deploying a Disque cluster would be pretty simple to do on a Docker or Docker swarm. As it stands, Disque has the same problems you run into trying to run Redis master/slave with Sentinel, but the additional one of making the assumption/insistence that the cluster communicates on base+10000. Since you solved in for Sentinel, I *know* you can solve it here fairly easily. ;)\r\n\r\nSummary:\r\n * Yay if made discoverable!\r\n * Make cluster bus port configurable rather than calculated\r\n\r\nCheers,\r\nBill"},"comment":{"url":"https://api.github.com/repos/antirez/disque/issues/comments/184412836","html_url":"https://github.com/antirez/disque/issues/164#issuecomment-184412836","issue_url":"https://api.github.com/repos/antirez/disque/issues/164","id":184412836,"user":{"login":"antirez","id":65632,"avatar_url":"https://avatars.githubusercontent.com/u/65632?v=3","gravatar_id":"","url":"https://api.github.com/users/antirez","html_url":"https://github.com/antirez","followers_url":"https://api.github.com/users/antirez/followers","following_url":"https://api.github.com/users/antirez/following{/other_user}","gists_url":"https://api.github.com/users/antirez/gists{/gist_id}","starred_url":"https://api.github.com/users/antirez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/antirez/subscriptions","organizations_url":"https://api.github.com/users/antirez/orgs","repos_url":"https://api.github.com/users/antirez/repos","events_url":"https://api.github.com/users/antirez/events{/privacy}","received_events_url":"https://api.github.com/users/antirez/received_events","type":"User","site_admin":false},"created_at":"2016-02-15T21:59:58Z","updated_at":"2016-02-15T21:59:58Z","body":"Hello guys, this feature was implemented in Redis Cluster (unstable branch) and is now under testing. It will be merged into Disque as well and I guess it will be identical. This will break `nodes.conf` here as well since we need to save the bus port additionally... However here the interface with the client is the more clean `HELLO` command so there will be no changes for clients AFAIK. Please test the feature in Redis unstable if you want, I did not tested it enough so far so feedbacks are appreciated."}}