

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á.

# Filas justas do Amazon SQS
<a name="sqs-fair-queues"></a>

 As filas justas do Amazon SQS mitigam automaticamente o impacto de vizinhos barulhentos em filas multilocatário que contenham mensagens de várias entidades lógicas, como clientes, aplicações clientes ou tipos de mensagens. Nesses ambientes de filas compartilhadas, uma métrica crítica de desempenho é o tempo de permanência, que mede o tempo total que as mensagens passam em uma fila desde a chegada até o processamento. Quando um locatário cria acúmulo na fila publicando mais mensagens do que o sistema pode suportar, filas justas minimizam o impacto no tempo de permanência de outros locatários. 

**Estado estacionário**

 O diagrama a seguir ilustra uma fila multilocatário contendo mensagens de quatro locatários distintos (identificados como **A**, **B**, **C** e **D**). A fila opera em um estado estável e não há nenhum acúmulo de mensagens, pois os consumidores recebem mensagens assim que elas aparecem na fila. Todos os locatários experimentam tempos de permanência baixos. Nem toda a capacidade do consumidor é totalmente utilizada nesse estado estável. 

![\[Uma fila multilocatário que contém mensagens de quatro locatários diferentes (representados por A, B, C, D). A fila está em um estado estável, com mensagens em trânsito distribuídas uniformemente entre os locatários, sem acúmulo e com pouco tempo de permanência para todos.\]](http://docs.aws.amazon.com/pt_br/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/FQ1_updated_aligned.png)


**Impacto de vizinhos barulhentos**

 O impacto de noisy neighbor (vizinho barulhento) ocorre quando um locatário em uma fila de vários locatários cria um acúmulo, aumentando o tempo de espera das mensagens para todos os outros. Um locatário pode se tornar um vizinho barulhento quando envia um volume maior de mensagens do que outros locatários ou quando os consumidores demoram mais para processar as mensagens desse locatário em particular. 

 Este diagrama ilustra como o aumento do tráfego do **Locatário A** cria um acúmulo na fila. Os consumidores estão ocupados processando as mensagens apenas do **Locatário A**, enquanto as mensagens de outros locatários aguardam, resultando em maiores tempos de espera para todos. 

![\[O resultado quando o locatário A aumenta o tráfego e cria um acúmulo na fila. As mensagens do Locatário A estão representadas em excesso no estado de trânsito, e as mensagens de outros locatários ficam presas na lista de pendências, resultando em um maior tempo de espera.\]](http://docs.aws.amazon.com/pt_br/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/FQ2_updated_again_aligned.png)


**Mitigação com filas justas**

 O Amazon SQS detecta vizinhos barulhentos monitorando a distribuição de mensagens entre os locatários durante o processamento (o estado “em trânsito”). Quando um locatário tem um número desproporcionalmente grande de mensagens em trânsito em comparação a outros, o Amazon SQS o identifica como um vizinho barulhento e prioriza a entrega de mensagens para outros locatários. Essa abordagem reduz o impacto do tempo de permanência nos outros locatários. 

Este diagrama ilustra como as filas justas do Amazon SQS abordam o problema do vizinho barulhento. Quando um locatário (**Locatário A**) fica barulhento, o Amazon SQS prioriza o retorno de mensagens de outros locatários (**B**, **C** e **D**). Essa priorização ajuda a manter baixos tempos de permanência para os locatários silenciosos — **Locatário B**, **C** e **D** —, enquanto o tempo de permanência das mensagens do **Locatário A** é elevado até que o acúmulo da fila seja consumido sem afetar outros locatários.

![\[Uma ilustração de como as filas justas resolvem o problema do vizinho barulhento monitorando o estado de trânsito. Quando o Locatário A fica barulhento, o SQS tem como objetivo retornar mensagens de outros locatários (B, C, D) para que as mensagens em trânsito sejam distribuídas uniformemente entre eles. O tempo de permanência dos locatários (B, C, D) permanecerá baixo, enquanto o tempo de permanência das mensagens do Locatário A será elevado até que o acúmulo da fila seja consumido.\]](http://docs.aws.amazon.com/pt_br/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/FQ3_updated_aligned.png)


**nota**  
 O Amazon SQS não limita a taxa de consumo por locatário. Ele permite que os consumidores recebam mensagens de locatários vizinhos barulhentos quando há capacidade de consumo e a fila não tem outras mensagens para retornar. Assim como as filas padrão do Amazon SQS, as filas justas permitem throughput praticamente ilimitado, e não há limites para o número de locatários que você pode ter na fila. 

Para obter detalhes sobre como o Amazon SQS detecta vizinhos ruidosos e gerencia pedidos de entrega de mensagens, consulte Como funcionam as filas justas do Amazon [SQS.](sqs-fair-queues-detailed.md)

## Como usar filas justas
<a name="sqs-fair-queues-using-fair-queues"></a>

 Para permitir filas justas, os produtores de mensagens devem adicionar um identificador de inquilino definindo um `MessageGroupId` nas mensagens enviadas: 

```
// Send message with tenant identifier 
SendMessageRequest request = new SendMessageRequest()    
    .withQueueUrl(queueUrl)    
    .withMessageBody(messageBody)    
    .withMessageGroupId("tenant-123"); // Tenant identifier 
sqs.sendMessage(request);
```

 A capacidade de imparcialidade será aplicada automaticamente em todas as filas padrão do Amazon SQS para mensagens com a propriedade. MessageGroupId Nenhuma alteração é necessária no código do consumidor, não há impacto na latência da API e não vem com limitação de taxa de throughput. 

**nota**  
 `MessageGroupId`em filas padrão com filas justas não tem o mesmo comportamento que `MessageGroupId` nas filas FIFO. Em filas padrão, `MessageGroupId` é usado somente como identificador de inquilino para filas justas e não impõe a ordenação de mensagens. Para obter detalhes `MessageGroupId` sobre as filas FIFO, consulte [Usando o ID do grupo de mensagens com as filas FIFO do Amazon SQS](using-messagegroupid-property.md). 

## Quando usar filas justas
<a name="sqs-fair-queues-when-to-use"></a>

Considere usar filas justas quando todos os itens a seguir se aplicarem à sua fila:
+ **A fila é multilocatária.** A fila carrega mensagens que pertencem a várias entidades lógicas, como clientes, aplicativos clientes ou tipos de solicitação, e você pode identificar cada entidade com um`MessageGroupId`.
+ **A fila tem alto rendimento.** Com baixa produtividade, a explosão de um inquilino raramente cria um acúmulo que afeta outros inquilinos. Com alto rendimento, escalar demais a frota de consumidores para absorver cada explosão é impraticável e, mesmo com o auto-scaling, a demora até que novos consumidores entrem on-line pode permitir a formação de atrasos.
+ **O tempo de espera faz parte da qualidade de serviço do seu aplicativo.** Filas justas protegem inquilinos silenciosos do tempo de permanência elevado causado por um vizinho barulhento. Se seu aplicativo não for sensível ao tempo de espera, a proteção de vizinhos barulhentos que as filas oferecem pode não ser necessária.

## Métricas de filas CloudWatch justas
<a name="sqs-fair-queues-cloudwatch-metrics"></a>

 O Amazon SQS fornece CloudWatch métricas adicionais para ajudar você a monitorar a mitigação do impacto de vizinhos ruidosos. Como exemplo, você pode comparar as métricas `Approximate..InQuietGroups` com métricas padrão em nível de fila. Durante picos de tráfego para um locatário específico, as métricas gerais do nível da fila podem revelar o aumento dos acúmulos ou a idade das mensagens mais antigas. No entanto, ao analisar os grupos silenciosos isoladamente, você pode identificar que a maioria dos grupos de mensagens não ruidosos ou locatários não são afetados. 

 Abaixo, você pode encontrar um exemplo em que a métrica padrão do acúmulo de filas (ApproximateNumberOfMessagesVisible) aumenta devido a um inquilino ruidoso, enquanto o acúmulo de inquilinos não ruidosos () permanece baixo. ApproximateNumberOfMessagesVisibleInQuietGroups 

![\[Gráfico mostrando o aumento do acúmulo de filas para grupos barulhentos, enquanto grupos silenciosos permanecem baixos.\]](http://docs.aws.amazon.com/pt_br/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/fair_queues_cw_metrics.png)


Para obter uma lista completa das CloudWatch métricas do Amazon SQS e suas descrições, consulte [CloudWatch métricas do Amazon SQS.](sqs-available-cloudwatch-metrics.md#sqs-metrics)