-
Notifications
You must be signed in to change notification settings - Fork 18
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
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).
You may replace Redis with another messaging system such as AMQP, if you want more reliability for messaging.
Refer to IPubSubDriver.java