On 5 January 2012 19:46, Fraser Adams <[email protected]> wrote:
> At the risk of being controversial :-) > > So qpid has both C++ and Java brokers available. Out of curiosity (and > definitely not wishing to start a flame war!!!!) what's the benefit of that > strategy, particularly because AMQP is language neutral and the C++ broker > acts as a very nice JMS message provider. > > So the most obvious difference is that the Java Broker runs pretty much anywhere and has the same functionality across all those platforms... Having spent the best part of an afternoon just trying to get the C++ broker and store to build on my Ubuntu 11.10 machine... that is certainly a huge convenience :-) For a lot of organisations, including the one I work at, having the ability to deploy exactly the same binaries and configurations on Windows, Linux (all flavours), Solaris, OS X, etc... does turn out to be surprisingly convenient. The Java Broker also allows communication using older versions of AMQP with automatic conversion (i.e. you can mix AMQP 0-8,0-9,0-9-1 and 0-10 clients on the same broker, using the same queues). Most of my qpid work has been done using Java clients and the C++ broker, > so I'm curious as to what the advantages of the Java broker may be. As far > as I could imagine from general experience of C++ versus Java I'd be > surprise if the Java broker performs anything like as well as the C++ > broker (but I'm prepared to be proven wrong!!). > > There are use cases where the C++ Broker handily out performs the Java Broker, certainly... but there are others where you'd be surprised that the reverse is true. > I'm genuinely curious, I'm really not trying to offend anyone working on > the Java broker so please don't take it that way. I've only ever used the > C++ broker so I'm coming from a position of total ignorance with respect to > the Java broker. > > I'd appreciate thoughts/opinions. > > >From a historical point of view, the Java Broker was written first, and the C++ Broker was developed with the aim of better exploiting performance opportunities that could be gained by using lower level C APIs (particularly from Linux). Historically we've not done as good a job as we could have in keeping the brokers in sync in terms of functionality, but hopefully we will improve on that in the future. Cheers, Rob
