Skip to content

cbeach/parth_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Copyright Casey Beach 2012


ParthenonMQ- A very simple message queue server.

This applications is written solely in Python.  It requires:
	python twisted
	redis
	python redis interface
	python-json

To Run:

In separate terminals (or hosts, it shouldn't matter) start the 
msg_host.py, subscriber.py, and publisher.py.  Publisher.py
accepts strings from the command line and sends them to 
the message server, which sends them to all available 
subscribers.

Description:

All messages are passed through a central server.  I have been using
RabbitMQ for one of my projects so I am fairly familiar with this model.
Persistence is handled by requiring acknowledgements from subscribers,
and retrying the messages every two seconds.  After 5 attempts the 
messages are dropped.

I implemented a simple 'fanout' exchange.  The main reason for this design 
decision was ease of implementation.  A good place to expand functionality
would be to add routing keys to the queue; i.e. subscribers will only get 
the messages that they are interested in.

A downside to the strict fanout implementation is that it puts the pressure
of sorting the messages on the subscribers, and adds extra traffic to the 
network.

I chose json to serialize my strings because it is implemented in a wide
variety of languages.

Partial persistence is handled with Redis, depending on how the Rredis server
is set up the queue may survive a full system crash.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages