-
Notifications
You must be signed in to change notification settings - Fork 6
Add (ha) rabbit cluster (but not use it) #1179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
TODO
Clients should properly use HA rabbit
Cluster FormationSource https://www.rabbitmq.com/docs/clustering Ways of Forming a Cluster
Node Names (Identifiers)
Cluster Formation Requirements
Ports That Must Be Opened for Clustering and Replication --> all works by default in docker swarm (all ports allowed)
Nodes in a Cluster
For two nodes to be able to communicate they must have the same shared secret called the Erlang cookie.
Node Counts and Quorum:
Clustering and ClientsMessaging Protocols
Stream Clients
Queue and Stream Leader Replica Placement
Cleaning volumes
HA Proxy highly available
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks a lot for the huge effort, this is (by design) working around many limitations of docker swarm, but nevertheless I see that you accounted for many pitfalls and issues. It looks promissing and robust. Let me know if you need help during the rollout, and I am curious to see if issues pop up or if this "just works" :--)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for the answers, all good!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pretty nice and complex. thanks!
Related issue/s * ITISFoundation#1176 Related PR/s * ITISFoundation#1179 * configuration https://git.speag.com/oSparc/osparc-ops-deployment-configuration/-/merge_requests/1542
* master: switch to standalone (cluster) rabbit Related issue/s * #1176 Related PR/s * #1179 * configuration https://git.speag.com/oSparc/osparc-ops-deployment-configuration/-/merge_requests/1542 * Delete compose * fix pre-commit hook * fix pre-commit hook * Add missing public network * Expose rabbit outside docker swarm * Use client ip private ips as a rule * Remove rabbit network from simcore * Fix haproxy timeout issues * rabbit lb: add placement constraints & preferences
What do these changes do?
Add standlone rabbitmq cluster stack.
Next step:
FYI: @pcrespov @GitHK
Related issue/s
Related PR/s
Prerequisites
Checklist
New stack
New service
Service is monitored (via prometheus and grafana)--> to be done in next PR when we switch from rabbit (in simcore stack) to cluster rabbit introduced hereService is not bound to one specific node(e.g. via files or volumes) --> it is bound because of volumes. no way around in our docker swarm setupIf exposed via traefik
Service's Public URL is included in maintenance mode--> unrelatedService's Public URL is included in testing mode--> unrelatedCredentials page is updated--> to be updated in another PR when we switch traffic to this rabbit clusterUrl added to e2e test services(e2e test checking that URL can be accessed) --> to be done when we swtich traffic