spring - High Performance Messaging between Java Client and Java 'Back End' -


i have basic java messaging application sends java objects remote server processing. leverage spring support on both sides of wire , use activemq jms provider. works - , have experienced no real problems 10 clients send messages concurrently.

however, want scale. number of clients increase circa 500 . also, bandwidth used each client more of issue declared initially.

i wondering whether thought activemq right tool job - or whether socket based tcp/udp scale better. not versed in of 'advanced' features of amq, since using basic spring jms template support.

any comments / thoughts appreciated.

thanks

without knowing quality of service , sla's you're trying achieve, basic rules follow when evaluating messaging service implementations application following...

performance on reliability

  • fast messaging
  • intermittent message loss acceptable
  • messages non-persistent
  • little no cost

in case, product zeromq (and others alike) suffice since works @ socket level, decentralized, offers extremely low latency , scales in large distributed systems, , open source cost negligible. if use cases require persistence , reliability, prepared implement custom solutions traditional messaging middleware offer out-of-box (persistence, durability, replication, etc).

balance performance , reliability

  • performance , reliability equally important
  • lost messages not acceptable
  • messages persistent
  • need support
  • relatively low cost

here's products activemq, rabbitmq, etc., come play. broker-based middleware addresses reliability , persistence concerns while providing performance , scalability. support costs low enough small , mid-sized companies afford without breaking bank. it's safe messaging needs fall category because provides accessibility both performance , reliability, , can sacrifice 1 other based on future needs application matures without swapping out entire messaging infrastructure due bad choice made years earlier.

reliability on performance

  • reliability important
  • messages can't dropped
  • message redelivery out-of-box
  • clustering, ha, replication, etc. available out-of-box.
  • need enterprise-class, global support , professional services
  • high cost

financial firms, trading systems, banking applications, etc., typically have such requirements message system reliability has dollar-value attached it, , when things don't work, money lost. therefore, message persistence, ha/fault-tolerance, fail-over, extremely important. if cost not issue, @ products weblogic, websphere, sonicmq, or tibco, etc.,...they're expensive, offer solid reliability, enterprise support , perform under load. i've used sonicmq, it's great product, fast , reliable, costs arm , leg.

hope helps...


Comments

Popular posts from this blog

SPSS keyboard combination alters encoding -

Add new record to the table by click on the button in Microsoft Access -

javascript - jQuery .height() return 0 when visible but non-0 when hidden -