Páginas filhas
  • DEAITOOLS-198 - Consolidar Estudo AMQP 0.9 vs AMQP 1.0 | Rabbit ou Cloud Providers

Sumário das diferenças de versões

Conexão e Transporte


1.00.9.x
ConexãoConnection -> Session -> SenderLink / ReceiverLinkConnection -> Channel -> BasicPublish / BasicConsume
Request/ReponseAtua em Paired Links. Sources dinâmicos para criação de filas temporárias.Atua diretamente no channel e declara exchanges
ExchangesNão possui. É possível emular os comportamentos através de filtros nos linksFanout, 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:

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






  • Sem rótulos