Live data from Hacker News

A quick message queue benchmark: ActiveMQ, RabbitMQ, HornetQ, QPID, Apollo

x-aeon.com

41–46 of 46 posts

Re: A quick message queue benchmark: ActiveMQ, RabbitMQ, HornetQ, QPID, Apollo

#41
post #22

Anyone here use NSQ in production ( https://github.com/bitly/nsq ). If so what are your thoughts in comparison to the article?

we do; rather happy with it. do you have any specific questions about it? the article's approach is.. strange, so I'm not sure how I can meaningfully contrast from a high-level.

(disclosure: i've contributed to nsq, after we began using it in production)

Re: A quick message queue benchmark: ActiveMQ, RabbitMQ, HornetQ, QPID, Apollo

#42
post #41
post #22

Anyone here use NSQ in production ( https://github.com/bitly/nsq ). If so what are your thoughts in comparison to the article?

we do; rather happy with it. do you have any specific questions about it? the article's approach is.. strange, so I'm not sure how I can meaningfully contrast from a high-level. (disclosure: i've contributed to nsq, after we began using it in production)

Any gotchas moving from RabbitMQ to nsq?

Also, are you missing any features in nsq?

Re: A quick message queue benchmark: ActiveMQ, RabbitMQ, HornetQ, QPID, Apollo

#43
post #22

Anyone here use NSQ in production ( https://github.com/bitly/nsq ). If so what are your thoughts in comparison to the article?

there are a few (growing) number of production installations of NSQ... our (bitly's) cluster spans a a few datacenters and hits peaks of 80k messages/second. I can answer any questions you have (one of the authors)

Any advice on dealing with de-duping?

Also, how was performance using JSON data format compared with ProtoBuffers & MsgPack?

Re: A quick message queue benchmark: ActiveMQ, RabbitMQ, HornetQ, QPID, Apollo

#44
post #32

Earlier quoted context omitted.

And then you've made your own broker. At that point why not use an existing, more mature broker?

The zero in ZeroMQ is because brokerlessness is a strength in some aspects. A broker can be an SPOF, for instance. 0MQ makes it easy to do shared-nothing.

I know what ZeroMQ does. But you argue that a one can easily write a broker on top of ZeroMQ that provides persistency, but that invalidates your biggest reason of using ZeroMQ, namely brokerlessness.

Besides SPOF is not an argument. All serious brokers have supported clustering and failover for quite a while, and they support persistency. I don't see a good reason why you may want to write a ZeroMQ-based broker instead of just using RabbitMQ.

Re: A quick message queue benchmark: ActiveMQ, RabbitMQ, HornetQ, QPID, Apollo

#45

Earlier quoted context omitted.

there are a few (growing) number of production installations of NSQ... our (bitly's) cluster spans a a few datacenters and hits peaks of 80k messages/second. I can answer any questions you have (one of the authors)

Any advice on dealing with de-duping? Also, how was performance using JSON data format compared with ProtoBuffers & MsgPack?

NSQ treats the message data as an opaque blob so the format wouldn't directly affect it (except on some lower level related to overall message size I suppose). It would impact your producers (encoding) and consumers (decoding), obviously.

re: de-duping - there are lots of things to consider, I highly recommend reading through http://cs.brown.edu/courses/csci2270/archives/2012/papers/we..., it's a fantastic paper. At a high level the answer is idempotency.

What sort of use case are you thinking of? (context would help answer your de-dupe question)

Re: A quick message queue benchmark: ActiveMQ, RabbitMQ, HornetQ, QPID, Apollo

#46
post #41

Earlier quoted context omitted.

we do; rather happy with it. do you have any specific questions about it? the article's approach is.. strange, so I'm not sure how I can meaningfully contrast from a high-level. (disclosure: i've contributed to nsq, after we began using it in production)

Any gotchas moving from RabbitMQ to nsq? Also, are you missing any features in nsq?

didn't run into any gotchas, but I tested things very thoroughly before going into production.

to the contrary- deploying static binaries (instead of the erlang environment) simplified things nicely, in my opinion. to be fair, i (personally) don't have the requisite experience tuning BEAM which probably biases my preference.

while relatively high volume, our usage of RabbitMQ was straightforward and covered by the functionality offered in NSQ.

like most, we were using AMQP.. so the switch to NSQ's concise wire protocol (and the associated reduction in pkt/s) saved us a lot of pain given the highly-variable performance we see in the EC2 network.

Post reply on HN