Sumário das diferenças de versões
Conexão e Transporte
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 |
Mensagem
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:
- https://medium.com/totvsdevelopers/diferen%C3%A7as-do-amqp-1-0-para-as-vers%C3%B5es-anteriores-9db828cc9e3e
- https://github.com/rabbitmq/rabbitmq-amqp1.0
Qual padrão devemos suportar?
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.
Como lidar com possíveis situações de Cloud-Vendor Lock-in?
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.
Qual esforço de alteração de APIs caso exista mudança no padrão atual?
Não existirá esforço.
Qual o maior custo/benefício?
Gerenciar o nosso próprio RabbitMQ na versão 0.9
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas