1.0 | 0.9.x | |
Conexão | Connection -> Session -> SenderLink / ReceiverLink | Connection -> Channel -> BasicPublish / BasicConsume |
Request/Reponse | Atua em Paired Links. Sources dinâmicos para criação de filas temporárias. | Atua diretamente no channel e declara exchanges |
Exchanges | Não possui. É possível emular os comportamentos através de filtros nos links | Fanout, Direct, Topic |
AMQP 1.0 AMQP 0-9-1
Header Properties
durable <---------------> delivery-mode [1]
priority <---------------> priority
ttl <---------------> expiration [2]
first-acquirer [3]
delivery-count [4]
Properties
message-id <---------------> message-id [5]
user-id <---------------> user-id
to [6]
subject [6]
reply-to <---------------> reply-to [6]
correlation-id <---------------> correlation-id
content-type <---------------> content-type
content-encoding <---------------> content-encoding
absolute-expiry-time [7]
creation-time <---------------> timestamp
Application headers <-------/-------> headers [8]
Mais detalhes:
Continuaremos suportando apenas o AMQP 0.9.
O principal motivo para essa decisão é o seguinte: O custo geral é menor para gerenciar um container com RabbitMQ do que utilizar um serviço de fila Cloud.
Outra vantagem acaba sendo: não precisar refatorar o trabalho que já foi homologado para a parte de EAI.
Não será um problema, visto que não vamos utilizar serviços específicos de fornecedores.
Mesmo se a decisão tivesse sido a de utilizar os serviços, não teríamos que lidar essa situação.
Basta utilizar uma biblioteca de AMQP 1.0. A portabilidade de um broker para o outro é muito simples, exige apenas mudar a URL do Address.
Não existirá esforço.
Gerenciar o nosso próprio RabbitMQ na versão 0.9