Message was send to wrong node with use zmq as rpc_backend

zmq: Send message to correct endpoint for directed messages

If set the zmq driver needs to use the topic.server
attribute to ensure that messages directed to a
specific endpoint are sent to the correct server rather
than being randomly sent to endpoints advertising the
required topic.

Change-Id: If63235640e0b8e6ec8690a4edaefa1b303705ac6
Closes-bug: #1301723
This commit is contained in:
zhangjl 2014-04-03 12:44:23 +08:00
parent fbaa46e276
commit 3e6c0b38a3
1 changed files with 2 additions and 0 deletions

View File

@ -939,6 +939,8 @@ class ZmqDriver(base.BaseDriver):
# NOTE(ewindisch): fanout~ is used because it avoid splitting on
# and acts as a non-subtle hint to the matchmaker and ZmqProxy.
topic = 'fanout~' + topic
elif target.server:
topic = '%s.%s' % (topic, target.server)
reply = _multi_send(method, context, topic, message,
envelope=envelope,