From 3a5de89dd686dbd9660f140fdddd9c78b20e1632 Mon Sep 17 00:00:00 2001 From: Oleg Bondarev Date: Mon, 27 Aug 2018 12:18:58 +0400 Subject: [PATCH] Use default exchange for direct messaging Lots of exchanges create problems during failover under high load. Please see bug report for details. This is step 1 in the process: only using default exchange when publishing. Consumers will still consume on separate exchanges (and on default exchange by default) so this should be (and tested to be) a non-breaking and upgrade-friendly change. Step 2 is to update consumers to only listen on default exchange, to happen in T release. Change-Id: Id3603f4b7e1274b616d76e1c0c009d2ab7f6efb6 Closes-Bug: #1789177 --- oslo_messaging/_drivers/impl_rabbit.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/oslo_messaging/_drivers/impl_rabbit.py b/oslo_messaging/_drivers/impl_rabbit.py index d21f46ebd..067d1673b 100644 --- a/oslo_messaging/_drivers/impl_rabbit.py +++ b/oslo_messaging/_drivers/impl_rabbit.py @@ -1015,6 +1015,7 @@ class Connection(object): responses for call/multicall """ + # TODO(obondarev): use default exchange since T release consumer = Consumer(exchange_name=topic, queue_name=topic, routing_key=topic, @@ -1181,7 +1182,7 @@ class Connection(object): def direct_send(self, msg_id, msg): """Send a 'direct' message.""" - exchange = kombu.entity.Exchange(name=msg_id, + exchange = kombu.entity.Exchange(name='', # using default exchange type='direct', durable=False, auto_delete=True,