Visão Geral do Serviço Queue
O OCI (Oracle Cloud Infrastructure) Queue é um serviço totalmente gerenciado sem servidor que ajuda a desacoplar sistemas e ativar operações assíncronas. O serviço Queue trata dados transacionais de alto volume que exigem mensagens processadas de forma independente sem perda ou duplicação. O serviço Queue suporta dimensionamento transparente e automático com base no throughput para produtores e consumidores. O serviço Queue usa padrões abertos para oferecer suporte à comunicação com qualquer cliente ou produtor com o mínimo de esforço.
O serviço OCI Queue é criado com base em quatro princípios:
- Publicando
- As mensagens podem ser publicadas em uma fila por um ou mais produtores, cada um com um período de retenção. Se a retenção não for especificada, a mensagem vai expirar usando um período de retenção definido no nível da fila. Uma mensagem contém um payload na forma de string.
- Consumindo
- Vários consumidores podem consumir mensagens de uma única fila. A contagem de consumidores pode ser escalada em conjunto com a taxa de mensagens que estão sendo publicadas. Depois que uma mensagem é entregue a um consumidor, ela fica oculta de outros consumidores por um período predefinido, conhecido como timeout de visibilidade.
- Atualizando
- Se o processamento de uma mensagem demorar mais do que o esperado, os consumidores poderão estender o timeout de visibilidade de uma mensagem. A extensão do timeout de visibilidade impede que a mensagem seja retornada à fila e entregue a outro consumidor.
- Excluindo
- Depois que uma mensagem tiver sido entregue e processada por um consumidor, ela deverá ser excluída para impedir a reentrega a outro consumidor.
Benefícios
O serviço Queue oferece os benefícios a seguir.
Desacoplamento de Aplicativos
O serviço Queue ajuda a desacoplar aplicativos e sistemas usando a arquitetura orientada por eventos. O desacoplamento garante que os componentes individuais do aplicativo possam ser dimensionados de forma independente e que, à medida que novos componentes do aplicativo forem criados, eles possam publicar na fila ou assiná-la.
Processamento Confiável de Mensagens
O serviço Queue garante que uma mensagem nunca será perdida, mesmo que o consumidor não esteja disponível para consumo. Uma mensagem publicada é persistente até ser excluída ou expirada.
Se uma mensagem não for consumida com sucesso, ela será enviada para uma fila de mensagens inativas (DLQ). As filas de cartas mortas permitem isolar mensagens problemáticas para determinar por que elas estão falhando. O isolamento e o consumo de mensagens problemáticas dessa forma podem garantir a entrega bem-sucedida a um aplicativo de consumidor pelo menos uma vez. Consulte Filas de Mensagens Não Processadas para obter mais informações.
Padrões Abertos
O serviço Queue pode ser chamado usando a definição de API RESTful (com uma especificação de API Aberta) ou usando o protocolo STOMP padrão do mercado.
Conceitos
O serviço Queue usa os conceitos a seguir.
- mensagem
- Uma mensagem é um elemento em uma fila que contém um payload na forma de uma string. A string pode estar em qualquer formato, inclusive XML, JSON, CSV, uma mensagem binária Base64-encoded e até mesmo formatos compactados, como gzip. Os produtores e os consumidores devem concordar com o formato da mensagem. Cada mensagem é processada de forma independente.
- produtor
- Um cliente que envia mensagens para a fila.
- consumidor
- Um cliente que recebe mensagens de uma fila. O consumidor também é responsável por excluir mensagens da fila após o recebimento das mensagens.
- canal
- Um destino efêmero em uma fila que pode ser criada sob demanda. As mensagens podem ser publicadas em um canal específico dentro de uma fila, e os consumidores podem recuperar mensagens de canais específicos. Para obter mais informações, consulte Canais.
- período máximo de retenção
- O tempo que uma fila mantém uma mensagem até que ela seja excluída automaticamente pelo sistema, se não for excluída por um consumidor. O período máximo de retenção pode ser configurado com valores de 10 segundos a 7 dias no nível da fila. O valor padrão é 1 dia.
- contagem de entregas
- O número de vezes que uma mensagem é entregue a um consumidor mediante solicitação.
- máximo de tentativas de entrega
- O número de vezes que uma mensagem é entregue a um consumidor, mas não atualizada ou excluída, antes de ser enviada a uma fila de mensagens inativas (DLQ). O máximo de tentativas de entrega é configurável com valores de 1 a 20 no nível da fila. Para obter mais informações, consulte contagem de entregas.
- timeout de sondagem
- O período durante o qual um consumidor aguardará o consumo das mensagens. O aumento do timeout de sondagem reduz o número de vezes que um consumidor solicita mensagens da fila, mas a resposta indica que não há mensagens disponíveis para consumo. O timeout de sondagem é configurável com valores de 0 a 30 segundos no nível da fila e os consumidores podem definir o valor ao solicitar mensagens. O valor padrão é de 30 segundos. Para obter mais informações, consulte sondagem longa.
- timeout de visibilidade
- O período durante o qual uma mensagem recebida da fila por um consumidor não é visível para outros consumidores. O timeout de visibilidade pode ser configurado com valores de 1 segundo a 12 horas no nível da fila e os consumidores podem definir o valor ao solicitar mensagens. O valor padrão é de 30 segundos. Para obter mais informações, consulte bloqueio de mensagens.
- mensagens visíveis
- O número de mensagens que no momento estão em uma fila e disponíveis para consumo.
- mensagens em andamento
- O número de mensagens entregues a um consumidor, mas ainda não excluídas. As mensagens em andamento ficarão indisponíveis para nova entrega até que o timeout de visibilidade tenha ocorrido.
- DLQ (fila de mensagens não processadas)
- Se uma mensagem não for consumida com sucesso e houver mais tentativas de entrega do que o número máximo de tentativas configurado, a mensagem será transferida para uma DLQ (fila de mensagens não processadas). Para obter mais informações, consulte Filas de Mensagens Não Processadas.
Garantias
O serviço Queue oferece as garantias descritas a seguir.
- Uma mensagem publicada com sucesso garantirá que seja durável até que seja excluída ou seu período de retenção tenha decorrido. A publicação de uma mensagem é considerada bem-sucedida quando o serviço Queue envia uma confirmação ao produtor. Não importa se a resposta foi recebida.
- Uma mensagem dentro do timeout de visibilidade garante que não seja entregue a outro consumidor até a expiração do timeout.
- Uma mensagem não será excluída pelo serviço Queue antes do término do seu período de retenção. Um consumidor pode processar e excluir uma mensagem durante o período de retenção.
Autenticação e Autorização
Cada serviço do Oracle Cloud Infrastructure integra-se ao serviço IAM para autenticação e autorização em relação a todas as interfaces (a Console, SDK ou CLI e API REST).
Um administrador da sua organização precisa configurar grupos, compartimentos e políticas que controlem quais usuários podem acessar quais serviços e quais recursos. e o tipo de acesso que eles têm. Por exemplo, as políticas controlam quem pode criar usuários, grupos e compartimentos ou quem pode criar e gerenciar implantações virtuais.
- Se você for um novo administrador, consulte Conceitos Básicos de Políticas.
- Para obter detalhes sobre como criar políticas para esse serviço, consulte Políticas de Fila.
- Para obter detalhes sobre a criação de políticas para recursos de outros serviços, consulte a Referência de Política.
Maneiras de Acessar o Serviço Queue
Você pode acessar o serviço Queue usando a Console (uma interface baseada em browser), a CLI do Oracle Cloud Infrastructure ou APIs REST.
As instruções para os três métodos estão presentes em todo este guia.
- A Console do OCI é uma interface baseada em browser fácil de usar. Para acessar a Console, você deve usar um browser suportado.
- As APIs REST fornecem a maior parte da funcionalidade, mas requerem experiência em programação. Referência de API e Pontos Finais fornecem detalhes de pontos finais e links para os documentos disponíveis de referência de API que incluem as APIs do serviço Queue.
- O OCI fornece SDKs que interagem com o serviço Queue.
- A CLI (Interface de Linha de Comando) fornece acesso rápido e funcionalidade completa sem a necessidade de programação.
- Para usar a CLI do OCI ou APIs REST, você pode configurar seu ambiente ou usar o Cloud Shell do Oracle Cloud Infrastructure.
- Para usar a CLI ou APIs REST no Cloud Shell, acesse a Console. Consulte Usando o Cloud Shell e a Referência de Comando da CLI.
- Para instalar a CLI do OCI em seu ambiente, siga as etapas no Início Rápido para Instalar a CLI.
- Ao usar APIs REST, consulte a documentação da API REST e Referência e Pontos Finais da API.
Limites de Serviço
Quando você se cadastra no Oracle Cloud Infrastructure, um conjunto de limites do serviço é configurado para sua tenancy. O limite de serviço é a cota ou a permissão definida em um recurso. Revise os limites de serviço a seguir para recursos do serviço Queue.
Recurso | Detalhes |
---|---|
Filas | 10 por tenancy por região |
Consulte Limites do Serviço para saber mais sobre os limites do serviço e encontrar instruções para solicitar um aumento de limite. Para definir limites específicos de compartimentos em um recurso ou família de recursos, os administradores podem usar cotas de compartimento.
Limites Funcionais
Além dos limites de recursos de serviço, existem limites de fila específicos para recursos e funcionalidades.
Limite | Detalhes |
---|---|
Canais por fila | 256 por fila |
Tamanho máximo da solicitação PutMessage | 512 KB e 20 mensagens |
Tamanho máximo da resposta GetMessage | 2 MB e 20 mensagens |
Tamanho máximo da mensagem | 256 KB |
Número máximo de mensagens em andamento | 100.000 por fila |
Máximo de mensagens por fila | Ilimitado |
Retenção de mensagens | Máximo: 7 dias Mínimo: 10 segundos Padrão: 1 dia |
Timeout de visibilidade da mensagem | Máximo: 12 horas Mínimo: 0 segundo no nível da mensagem Mínimo: 1 segundo no nível da fila Padrão: 30 segundos |
Máximo de solicitações GET simultâneas | 1.000 solicitações por segundo por fila |
Máximo de operações de mensagens | 1.000 solicitações por segundo por API por fila |
Taxa máxima de dados | Entrada por fila: 10 MB/s Saída por fila: 10 MB/s |
Timeout de sondagem | Máximo: 30 segundos Mínimo: 0 segundo |
Throughput do STOMP | 10 MB/s por conexão do STOMP |
Armazenamento | 20 GB por tenancy 2 GB por fila |