antirez / antirez/disque

Inbuilt incompatibility with port mapping (such as in Docker)

Offen
#164 6 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C
Sterne
8.1k
Forks
532
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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.

For 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.

However, 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. ;)

Summary:
- Yay if made discoverable!
- Make cluster bus port configurable rather than calculated

Cheers,
Bill

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.