Skip to content
araobp edited this page Jun 26, 2015 · 8 revisions

Use of Redis

ODENOS uses Redis just for a high-performance pubsub server as a messaging bus.

systemmanager        romgr1               romgr2
[ODENOS process 1]   [ODENOS process 2]   [ODENOS process 3]
         |                   |                    |
       --+-------------------+--------------------+--- messaging bus (Redis)

It might remind you of an old central office switch's architecture for linear scalability: some tens of CPUs are connected to a messaging bus for parallel computing, and a number of switches are connected to each other via Common Channel (e.g., SS7).

Note that messaging within an ODENOS process does not use Redis at all.

If you want to monitor messaging, just uncomment "monitor.logging" in etc/odenos.conf:

monitor logging   resttranslator,systemmanager,romgr1,network1 (include object IDs you want to monitor)

Or use ODENOS message sequence diagram GUI. Refer to https://github.com/o3project/odenos/tree/develop/apps/monitor

Redis drivers

ODENOS uses Jedis as a Java driver for Redis. Since Jedis is not thread-safe, ODENOS only uses Jedis's utility classes with thread-safe Redis APIs on top of it.

For python, ODENOS uses redis-py (synchronous), but the monitor tool uses tornado-redis (asynchronous).

Replacing Redis with another messaging system

You may replace Redis with another messaging system such as AMQP, if you want more reliability for messaging.

Refer to IPubSubDriver.java

Clone this wiki locally