Announcement Announcement Module
No announcement yet.
Chat application with JMS Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Thank you,

  • #2
    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 [email protected]; May 15th, 2008, 11:52 AM.