Вопрос

As I understood AMQP 0.9.1, the main benefit was that you could send and receive messages and configure your exchanges / bindings / queues in a broker-independent way, thus you were able to switch your broker implementation without too much headache.

Now, AMQP 1.0 only defines a wire-level protocol, so you actually have to know your broker specifics in order to implement most messaging patterns.

Then why would I favour a message broker that is AMQP compliant over one that is not?

If the broker implements AMQP 1.0, I'm still locked in with broker specific client code. With AMQP 0.9.1, I am theoretically broker independent but would most likely end up with RabbitMQ, since they seem to be the only ones to sincerely maintain the full support for AMQP 0.9.1.

Это было полезно?

Решение

Unfortunately, your concerns are very valid.

Pieter Hintjens has great post on that, claiming that "AMQP/1.0 will go down in history as a prime documented example of how to fail a standardization effort and hurt a lot of people in the process."

To your question: "why would I favour a message broker that is AMQP compliant over one that is not?" Definitely not because you get the option to change your message broker provider, as it is now not required. There are only two situations, I would think of favouring AMQP message broker:

1) You are already used to that and have that broker easily available

2) AMQP still brings the advantage of having clients available in multiple programming languages. But STOMP would serve here too.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top