3 ms·
You might want to check out NATS[0], it starts out with RabbitMQ like functionality (message queue) and can also do Kafka things (distributed persistent log) vi
by hardwaresofton 5y ago
You might want to check out NATS[0], it starts out with RabbitMQ like functionality (message queue) and can also do Kafka things (distributed persistent log) via NATS Jetstream[1] or Liftbridge[2].
It's riding the wave of CNCF cloud-buzzword projects but don't let that scare you off -- generally that means that it is actually really easy to set up and operate, and does most of the things you'd expect via well structured pre-inserted configuration which is a plus. The devil is still in the details though, so read the docs thoroughly to make sure it fits your usecase.
[0]: https://nats.io/ https://nats.io/
[1]: https://docs.nats.io/jetstream/jetstream https://docs.nats.io/jetstream/jetstream
[2]: https://liftbridge.io/ https://liftbridge.io/
- oaiey 5y agoNATS has different characteristics. Afair, it disconnects not consuming / Not fast enough clients. For regular messaging
- hardwaresofton 5y agoSo there is base NATS and abstractions built upon NATS. Which are you referring to? There's documentation on this bug/feature[0] and it looks like using NATS streaming is a way to fix this. I will admit that it's a bit annoying to figure out the difference between NATS streaming, jetstream and Liftbridge but I don't think this issue affects all 3. Jetstream is essentially NATS streaming built into the NATS binary itself, so switching to it should produce the feature set you're looking for. [0]: https://docs.nats.io/nats-server/nats_admin/slow_consumers https://docs.nats.io/nats-server/nats_admin/slow_consumers
- oaiey 5y agoCompletely agree with that. I was referring base NATS. RabbitMQ plays in the field of traditional general purpose messaging system. NATS was specializing on performance. Kafka focused on streams. That is a focus and includes trade offs. Which is all fine. That is all I want to address.
- atombender 5y agoNATS JetStream is very different, implementation-wise, from NATS Streaming. The latter is deprecated and no longer under development. JetStream is impressive and looks very promising. I did some stress testing recently and found some performance issues and possible bugs, but I wouldn't hesitate to put it into production.