View a markdown version of this page

RabbitMQ 4.3 - Amazon MQ

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

RabbitMQ 4.3

Agora, o Amazon MQ oferece suporte à versão RabbitMQ 4.3 da série de RabbitMQ 4 versões no tipo de instância mq.m7g em todos os tamanhos de instância suportados. RabbitMQO 4.3 introduz aprimoramentos na fila de quórum, novos tipos de troca e conclui a remoção de vários recursos que estavam obsoletos nas versões 4.x anteriores. Para obter mais informações sobre essa versão, consulte as notas da versão RabbitMQ 4.3.0 no GitHub site.

Importante

O Amazon MQ só oferece suporte à atualização de RabbitMQ RabbitMQ 4.2 para 4.3. Você não pode atualizar diretamente da versão RabbitMQ 3.13 para a 4.3. Se seu corretor estiver executando o RabbitMQ 3.13, você deve primeiro atualizar para RabbitMQ 4.2 antes de atualizar para 4.3.

Alterações significativas em RabbitMQ 4.3 no Amazon MQ

As seguintes alterações de código aberto podem afetar seus aplicativos ao atualizar para a RabbitMQ versão 4.3. Revise essas mudanças antes de atualizar seu corretor.

  • Filas transitórias não exclusivas são rejeitadas: declarar uma fila que não é durável e não exclusiva agora retorna um erro. O Amazon MQ for RabbitMQ 4.3 removeu o suporte para esse recurso. Em vez disso, use filas duráveis, filas exclusivas ou filas duráveis com TTL de filas no site. RabbitMQ

  • A QoS global é rejeitada: a chamada basic.qos com global=true agora retorna um erro de canal. O Amazon MQ for RabbitMQ 4.3 removeu o suporte para esse recurso. Em vez disso, use prefetch () global=false por consumidor. Para obter mais informações sobre essa alteração, consulte Remoção da QoS global no RabbitMQ site.

  • O armazenamento clássico da fila v1 foi removido: declarar uma fila com x-queue-version=1 agora retorna um erro. O Classic queue v2 é o único mecanismo de armazenamento compatível. O Amazon MQ aplica a v2 desde RabbitMQ 3.12, portanto, as filas existentes não são afetadas.

  • O tempo limite do consumidor não se aplica mais às filas clássicas: as filas clássicas não avaliam mais os tempos limite do consumidor. Se um consumidor ficar preso no nível do aplicativo, RabbitMQ ele não reenviará mensagens automaticamente. A consumer_timeout configuração continua sendo aplicada às filas de quórum. Se seu aplicativo depende do tempo limite do consumidor para filas clássicas, considere migrar para filas de quórum ou implementar verificações de pulsação no nível do aplicativo. Para obter mais informações sobre essa alteração, consulte as notas da versão RabbitMQ 4.3.0 no GitHub site.

Novos recursos e aprimoramentos no RabbitMQ 4.3 no Amazon MQ

  • Prioridade estrita da fila de quórum: as filas de quórum agora suportam ordenação de prioridade estrita com até 32 níveis (0—31), habilitada com o argumento de fila. x-max-priority Higher-priority as mensagens são sempre entregues antes das mensagens de baixa prioridade. Isso substitui a entrega baseada em proporção de 2 níveis introduzida em 4.2. RabbitMQ Para obter mais informações sobre as prioridades da fila de quórum, consulte Prioridades da fila de quórum no site. RabbitMQ

  • Tentativa atrasada na fila de quórum: as filas de quórum suportam nova tentativa atrasada com aumento de recuo configurável. Você pode configurar o comportamento de nova tentativa usando argumentos de fila ou chaves de política (delayed-retry-type,delayed-retry-min,delayed-retry-max). Para obter mais informações sobre filas de quórum, consulte Filas de quórum no site. RabbitMQ

  • Tempo limite granular do consumidor para filas de quórum: o tempo limite do consumidor agora pode ser definido por consumidor, por fila ou usando uma política. Isso fornece um controle mais preciso do que a configuração anterior de todo o corretorconsumer_timeout.

  • Limite de entrega alterável usando uma política: o limite de entrega da fila de quórum agora pode ser atualizado usando uma política sem exigir a redeclaração da fila.

  • Troca consistente de hash (x-modulus-hash): o tipo de x-modulus-hash troca agora está incorporado ao núcleo. RabbitMQ Esse tipo de troca distribui mensagens em filas vinculadas usando um hash consistente da chave de roteamento, permitindo a fragmentação da carga de trabalho sem a lógica do lado do cliente. Para obter mais informações sobre trocas de hash consistentes, consulte Troca consistente de hash no RabbitMQ site.

Importante

Se você estiver atualizando do RabbitMQ 4.2, observe a seguinte alteração na entrega de mensagens. As mensagens existentes com prioridades anteriormente mapeadas como altas (≥5) ou normais (0—4) agora são entregues usando uma ordem estrita. Como resultado, as mensagens de prioridade mais baixa podem ficar sem conteúdo, enquanto as de prioridade mais alta permanecem na fila. RabbitMQ4.2 usou a entrega baseada na proporção de 2:1, o que garantiu o progresso nas mensagens de prioridade normal.