Thursday, April 21, 2011

My UDP based JMS Solution

Just wondered and searched udp based JMS solutions for high performance need. Could not find any and hence decided to write one through java. Till now able to create Queues and made them communicate each other. My design has,

1.  A communication provider maintains a list of Queues and Topics. Mainly list of Queue Initiators and on subscription it will have Queue Clients too. It will have a list of Topic subscribers too.
2. A Queue initiator that communicates with ConnectionProvider to register the queue name and its ip/port details.
3. A Queue client that subscribes with ConnectionProvider and get the details of Queue initiator.
4. Queue initiator and Queue client can communicate each other with high performance. On closure, commuincation provider can be updated.
5. Communication Provider , Queue initiator , Queue clients are distributed. They can run in three different jvm.
6. Currently all objects are extending Thread object. But it can be enhanced by having one thread per jvm that receives all packets and then notifies clients.

Have made a working version that supports create, delete, subscribe and unsubscribe. On a i3 CPU 64 bit, 3 GB, 2.27 GHz, 2.26 GHz machine, it is able to send/receive 6700 udp packets per second. Recently have made it to support topic also.

No comments:

Post a Comment