18c8bc933d
Currently proxy binds to a random port from a port range specified in zmq config and therefore needs to register in redis to become visible to clients and servers. That could be done much simpler by using a static port(s) for proxy. Moreover zmq handles reconnect to a socket if restarted service uses the same port number as it had before restart. Change-Id: I088792fd08a4161d08e9160830fc3ec4d560cca4
37 lines
782 B
Bash
Executable File
37 lines
782 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
. tools/functions.sh
|
|
|
|
DATADIR=$(mktemp -d /tmp/OSLOMSG-ZEROMQ.XXXXX)
|
|
trap "clean_exit $DATADIR" EXIT
|
|
|
|
export TRANSPORT_URL=zmq://
|
|
export ZMQ_MATCHMAKER=redis
|
|
export ZMQ_REDIS_PORT=65123
|
|
export ZMQ_IPC_DIR=${DATADIR}
|
|
export ZMQ_USE_PUB_SUB=false
|
|
export ZMQ_USE_ROUTER_PROXY=true
|
|
|
|
export ZMQ_PROXY_HOST=127.0.0.1
|
|
|
|
cat > ${DATADIR}/zmq.conf <<EOF
|
|
[DEFAULT]
|
|
transport_url=${TRANSPORT_URL}
|
|
rpc_zmq_matchmaker=${ZMQ_MATCHMAKER}
|
|
rpc_zmq_ipc_dir=${ZMQ_IPC_DIR}
|
|
use_pub_sub=${ZMQ_USE_PUB_SUB}
|
|
use_router_proxy=${ZMQ_USE_ROUTER_PROXY}
|
|
[matchmaker_redis]
|
|
port=${ZMQ_REDIS_PORT}
|
|
|
|
[zmq_proxy_opts]
|
|
host=${ZMQ_PROXY_HOST}
|
|
EOF
|
|
|
|
redis-server --port $ZMQ_REDIS_PORT &
|
|
|
|
oslo-messaging-zmq-proxy --debug True --config-file ${DATADIR}/zmq.conf > ${DATADIR}/zmq-proxy.log 2>&1 &
|
|
|
|
$*
|