Browse code

Complete the support of MatchMakerRedis driver

MatchMakerRedis is the only tested routing method
for ZeroMQ driver. For others, like MatchMakerLocalhost
and MatchMakerRing, it still takes some time to work
on and completely test.

MatchMakerRedis is enough to run under real-world
deployment.

Change-Id: I3b2e8e68ceebd377479d75bbb8b862ae60cfc826
Partially-Implements: blueprint zeromq

Li Ma authored on 2014/12/22 16:51:40
Showing 1 changed files
... ...
@@ -158,9 +158,6 @@ function install_rpc_backend {
158 158
         fi
159 159
         _configure_qpid
160 160
     elif is_service_enabled zeromq; then
161
-        # NOTE(ewindisch): Redis is not strictly necessary
162
-        # but there is a matchmaker driver that works
163
-        # really well & out of the box for multi-node.
164 161
         if is_fedora; then
165 162
             install_package zeromq python-zmq
166 163
             if [ "$ZEROMQ_MATCHMAKER" == "redis" ]; then
... ...
@@ -243,11 +240,15 @@ function iniset_rpc_backend {
243 243
     local section=$3
244 244
     if is_service_enabled zeromq; then
245 245
         iniset $file $section rpc_backend "zmq"
246
-        iniset $file $section rpc_zmq_matchmaker \
247
-            oslo_messaging._drivers.matchmaker_redis.MatchMakerRedis
248
-        # Set MATCHMAKER_REDIS_HOST if running multi-node.
249
-        MATCHMAKER_REDIS_HOST=${MATCHMAKER_REDIS_HOST:-127.0.0.1}
250
-        iniset $file matchmaker_redis host $MATCHMAKER_REDIS_HOST
246
+        iniset $file $section rpc_zmq_host `hostname`
247
+        if [ "$ZEROMQ_MATCHMAKER" == "redis" ]; then
248
+            iniset $file $section rpc_zmq_matchmaker \
249
+                oslo.messaging._drivers.matchmaker_redis.MatchMakerRedis
250
+            MATCHMAKER_REDIS_HOST=${MATCHMAKER_REDIS_HOST:-127.0.0.1}
251
+            iniset $file matchmaker_redis host $MATCHMAKER_REDIS_HOST
252
+        else
253
+            die $LINENO "Other matchmaker drivers not supported"
254
+        fi
251 255
     elif is_service_enabled qpid || [ -n "$QPID_HOST" ]; then
252 256
         # For Qpid use the 'amqp' oslo.messaging transport when AMQP 1.0 is used
253 257
         if [ "$RPC_MESSAGING_PROTOCOL" == "AMQP1" ]; then