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á.
Alterações no agrupamento em lotes automático de solicitações do Amazon SQS da versão 1 para a versão 2
Este tópico detalha as alterações no agrupamento em lotes automático de solicitações para o Amazon SQS entre a versão 1 e a versão 2 do AWS SDK for Java.
Alterações de alto nível
O AWS SDK for Java 1.x executa o buffer do lado do cliente usando uma classe AmazonSQSBufferedAsyncClient separada que requer inicialização explícita para o agrupamento em lotes de solicitações.
O AWS SDK for Java 2.x simplifica e aprimora a funcionalidade de armazenamento em buffer com o SqsAsyncBatchManager. A implementação dessa interface fornece recursos automáticos de envio em lotes de solicitações diretamente integrados ao SqsAsyncClient padrão. Para saber mais sobre SqsAsyncBatchManager da v2, consulte o tópico Usar o agrupamento em lotes automático de solicitações para Amazon SQS com o AWS SDK for Java 2.x deste guia.
| Alteração | v1 | v2 |
|---|---|---|
|
Dependências do Maven |
|
|
| Nomes do pacote | com.amazonaws.services.sqs.buffered |
software.amazon.awssdk.services.sqs.batchmanager |
| Nomes da classe | SqsAsyncBatchManager |
1 Versão mais recente
Usar o agrupamento em lotes automático de solicitações do SQS
| Alteração | v1 | v2 |
|---|---|---|
| Criar um gerenciador de lotes |
|
|
| Criar um gerenciador de lotes com configuração personalizada |
|
|
| Enviar mensagens |
|
|
| Exclua mensagens |
|
|
| Alterar a visibilidade das mensagens |
|
|
| Receber mensagens |
|
|
Diferenças de tipo de retorno assíncrono
| Alteração | v1 | v2 |
|---|---|---|
| Tipo de retorno | Future<ResultType> |
CompletableFuture<ResponseType> |
| Mecanismo de retorno de chamada | Requer um AsyncHandler com métodos onSuccess e onError separados |
Usar APIs CompletableFuture fornecidas pelo JDK, como whenComplete(), thenCompose() e thenApply() |
| Gerenciamento de exceções | Use o método AsyncHandler#onError() |
Usar APIs CompletableFuture fornecidas pelo JDK, como exceptionally(), handle() ou whenComplete() |
| Cancelamento | Suporte básico por meio de Future.cancel() |
O cancelamento de um CompletableFuture principal cancela automaticamente todos os futuros secundários na cadeia |
Diferenças de gerenciamento da conclusão assíncrona
| Alteração | v1 | v2 |
|---|---|---|
| Implementação do gerenciador de resposta |
|
|
Principais parâmetros de configuração
| Parameter | v1 | v2 |
|---|---|---|
| Tamanho máximo do lote | maxBatchSize (padrão de 10 solicitações por lote) |
maxBatchSize (padrão de 10 solicitações por lote) |
| Tempo de espera do lote | maxBatchOpenMs (padrão de 200 ms) |
sendRequestFrequency (padrão de 200 ms) |
| Tempo limite de visibilidade | visibilityTimeoutSeconds (-1 para a fila padrão) |
receiveMessageVisibilityTimeout (fila padrão) |
| Tempo mínimo de espera | longPollWaitTimeoutSeconds (20 s quando longPoll é verdadeiro) |
receiveMessageMinWaitDuration (padrão de 50 ms) |
| Atributos de mensagens | Definir usando ReceiveMessageRequest |
receiveMessageAttributeNames (nenhum por padrão) |
| Atributos do sistema | Definir usando ReceiveMessageRequest |
receiveMessageSystemAttributeNames (nenhum por padrão) |
| Sondagem longa | longPoll (o padrão é verdadeiro) |
Não há suporte para evitar conexões abertas aguardando até o servidor enviar as mensagens |
| Tempo máximo de espera para pesquisas longas | longPollWaitTimeoutSeconds (padrão de 20 s) |
Não há suporte para evitar conexões abertas aguardando até o servidor enviar as mensagens |
| O número máximo de lotes de recebimento pré-obtidos armazenados no lado do cliente. | maxDoneReceiveBatches (10 lotes) |
Incompatível porque é gerenciado internamente |
| Número máximo de lotes de saída ativos processados simultaneamente | maxInflightOutboundBatches (padrão de 5 lotes) |
Incompatível porque é gerenciado internamente |
| Número máximo de lotes de recebimento ativos processados simultaneamente | maxInflightReceiveBatches (padrão de 10 lotes) |
Incompatível porque é gerenciado internamente |