Mar 28th, 2008, 10:05 AM
Chat application with JMS
My chat application needs to multicast messages to the proper chat rooms. An important requirement is that clients must be able to subscribe and unsubscribe to/from chat rooms. It looks like that it could be done with message selectors.
Here is my tentative architecture:
1) 1 server runs the JMS provider that manages a topic (ActiveMQ)
2) a servers farm (maybe 5 nodes) relays messages between the JMS provider and the clients (browsers)
3) each node of the servers farm opens 1 JMS topic connection to the JMS provider
4) each JMS topic connection is used to spawn 1 JMS topic session per client (possibly 2,000 per server)
My questions are:
1) Is it OK to end up with 5 JMS topic connections (1 per node in the servers farm) and 5 x 2,000 = 10,000 JMS sessions? Isnít it too many?
2) Should I go for plain JMS API, or do you think that Spring can help me? I have tried to use Spring JMS templates and message listeners, but I have struggled with the management of resources (create / kill sessions, launch / stop message listeners).
Any other comment is welcome.
May 15th, 2008, 11:44 AM
Using ActiveMQ i would performance test this ...
Or system has 1000 durable consumers to listen for same topic and 100 Producers at the same time and Active MQ (we used 4.1.1) did not really make it if the system creates about 100 messages / min per Producer
The Broker often failed to distribute the messages etc. so this would be a thing i would have an eye on.
We used Spring JMSTemplate and DefaultMessageListenerContainers for some listeners and the JMS API for the producers and some listeners.
Maybe you have better Experiences with Active MQ or a newer version of Active MQ will do a better job...
Last edited by firstname.lastname@example.org; May 15th, 2008 at 11:52 AM.