Merge ~cjwatson/lp-mailman:kombu-amqp into lp-mailman:master
Status: | Merged |
---|---|
Approved by: | Colin Watson |
Approved revision: | 707070eb8c7c60330a80f2c4db112621feb7a82c |
Merge reported by: | Otto Co-Pilot |
Merged at revision: | not available |
Proposed branch: | ~cjwatson/lp-mailman:kombu-amqp |
Merge into: | lp-mailman:master |
Diff against target: |
141 lines (+33/-16) 6 files modified
configs/development/mailman-lazr.conf (+1/-4) configs/testrunner/mailman-lazr.conf (+1/-4) constraints.txt (+3/-2) lib/lp/services/config/schema-lazr.conf (+12/-1) lib/lp/services/messaging/rabbit.py (+15/-5) setup.py (+1/-0) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Simone Pelosi | Approve | ||
Review via email: mp+452286@code.launchpad.net |
Commit message
Support multiple RabbitMQ broker URLs
Description of the change
`kombu` is a higher-level messaging library than `amqp`. For our purposes, we can treat it mostly as a wrapper for `amqp` with some slightly more convenient interfaces, but it has one key feature that's of interest to us: it supports multiple RabbitMQ broker URLs with round-robin failover between them. This makes it possible to configure lp-mailman to use RabbitMQ with high availability: if we have a RabbitMQ cluster, then we can configure lp-mailman with broker URLs for all the nodes in the cluster, and if one fails then `kombu` will automatically fail over to the next.
To make it practical to configure this, I had to add a `rabbitmq.
This also includes upgrading to oops-amqp 0.2.0, since that includes a change to accept connection factories that return `kombu` connections.
This is a reduced version of https:/
Dependencies MP: https:/
LGTM!