What Java Message Service Implementation? 25
alapalaya queries: "If you had to implement a message dispatcher with soft real time requirements,
which has to manage a lot of messages, and in general subject to a lot of problematic requirements (including object persistence); all implemented using a Java Message Service; what implementation would you use? In fewer words: in your opinion what is the best Java Message Service Implementation? Among the various JMS implementations I am currently using SonicMQ; but it doesn't seem to scale up in a proper way (to around several hundreds of clients generating from 10 to 200 messages/sec each). What do you know about other vendors/implementations?"
Re:What I Use (Score:1)
JBoss, OpenJMS (Score:3, Informative)
JMS does not meet real time requirements (Score:2, Informative)
Message services are designed to guaranty message delievery, not to be particular fast or even "real time", what ever the timing criteria of you might be.
What about clustering? JMS implementations usualy support clustering, at least SonicMQ does so.
In a project I was, we used MQSeries(sp?) from IBM. It had to process 600k messages a day but it was good enough for us if a message was processed in a couple of minutes
Regards,
angel'o'sphere
Re:JMS does not meet real time requirements (Score:2)
for Real Time Messages, just open a socket. a) its cheaper in resources b) its faster c) its how a JMS provider will be doing it anyways.
true, but... (Score:1)
We've used SonicMQ but not to the level of volume described. It may be that he's reached the limit of the hardware and needs to cluster or go to a bigger box. He's going to have to demo the competitors and see if any can do better on the same hardware, which is what I expect he is planning to do. He just wants to start the testing with one other folks have had good high-volume experiences with.
Other options??? (Score:4, Informative)
Re:Other options??? (Score:1)
Try IBM MQ Series (Score:2, Informative)
I've found that it handles the load pretty well (just an informal test right now gives about five 10K messages/sec on a 100Mbps network).
The advantages of this solution are that you are not restricted to JMS clients. IBM MQ Series can deliver messages to non-JMS clients too. Admittedly, this is a non-issue if you are tossing Java objects around. In our case, we use it to pass XML data as queries and responses. I've generally found a near instantaneous response rate from the time the publish happens to when the subscriber is notified of a new message. Just my $0.02c
Tibco (Score:1)
Re:Tibco (Score:1)
Please don't get the impression from the above that Tibco is not a good product. It is, and it is (can be made to be) reliable enough for most purposes. For example, significant fractions of the UK's electricity market depends on Tibco for energy trading.
Vendor Independant JMS - Offtopic? (Score:1)
This is probably more than a bit offtopic, but developerworks has an article on writing vendor independant JMS code. It's availible here [ibm.com].
Unfortunetly I've never really dealt with JMS, so I can't really answer the question in the post.
HERESAY! what EVIDENCE can you really show me? (Score:1)
any takers?
Re:HERESAY! what EVIDENCE can you really show me? (Score:1)
Are you sure you have SonicMQ configured properly? (Score:1)
MOM (Score:2)
There may be others around, but no-one can touch these for reliability, scalability and vendor support - the three key factors for serious enterprise infrastructure. If you already have existing code written for IBM, Oracle or MS platforms, then so much the better, I believe AQ and MSMQ are pretty much bundled with the platform anyway. Still, IBM do dominate the market, their MQSeries is used by very serious people (banks, airlines, etc) and it's very mature.
Re:MOM (Score:2)
Re:MOM (Score:2)
I've done some work with Tibco stuff, TIC, eFinance, etc. Reuters deliver their equities information streams over it. I only didn't mention it because I've never seen it used outside of finance. There is also DBUS (Deutshe Bank's own proprietary MOM), which was going to be open sourced, or so the rumor was, but I haven't heard any more of it.
Nirvana (Score:1, Interesting)
Nirvana has a powerful federated name space. The name space allows you to split the client load over multiple realms ( Nirvana server instances ) creating one way or bi-directional joins between the distributed channels/topics running on different realms. The routing of data from one channel/topic to the next can be filtered using message selectors allowing you to route content by value dynamically within the name space.
Nirvana delivers pub/sub, message queues and a peer 2 peer framework, all of which can function concurrently within one or more name spaces. Nirvana directly supports sockets. SSL enabled sockets, HTTP and HTTPS, both HTTP and HTTPS traverse normal and user authenticated proxy servers. Nirvana's client API runs in a browsers JVM without any plugin technology.
Finally the licensing model (http://www.my-channels.com/products/licensing.ht
Flow control and scalability (Score:1)