Gateway dedicado do Azure Cosmos DB – Visão geral
APLICA-SE A: NoSQL
Um gateway dedicado é a computação do lado do servidor que é um front-end para sua conta do Azure Cosmos DB. Quando você se conecta ao gateway dedicado, ele roteia solicitações e armazena dados em cache. Assim como a taxa de transferência provisionada, o gateway dedicado é cobrado por hora.
Visão geral
Você pode provisionar um gateway dedicado para melhorar o desempenho em escala. O motivo mais comum pelo qual você poderia querer provisionar um gateway dedicado seria o armazenamento em cache. Quando você provisiona um gateway dedicado, um cache integrado é configurado automaticamente no gateway dedicado. Leituras pontuais e consultas que atingem o cache integrado não usam nenhuma das suas RUs. O provisionamento de um gateway dedicado com um cache integrado pode ajudar a reduzir custos para cargas de trabalho com uso intenso de leitura no Azure Cosmos DB.
O gateway dedicado é integrado ao Azure Cosmos DB. Ao provisionar um gateway dedicado, você tem um nó totalmente gerenciado que roteia solicitações para partições de back-end. A conexão ao Azure Cosmos DB com o gateway dedicado fornece latência menor e mais previsível do que a conexão ao Azure Cosmos DB com o gateway padrão. Até mesmo falhas de cache apresentam melhorias de latência ao comparar o gateway dedicado e o gateway padrão.
Há apenas alterações mínimas de código necessárias para que seu aplicativo use um gateway dedicado. Contas novas e existentes do Azure Cosmos DB podem provisionar um gateway dedicado para melhorar o desempenho de leitura.
Observação
Você tem comentários sobre o gateway dedicado? Queremos saber sua opinião! Sinta-se à vontade para compartilhar comentários diretamente com a equipe de engenharia do Azure Cosmos DB: cosmoscachefeedback@microsoft.com
Modos de conexão
Há dois modos de conectividade para o Azure Cosmos DB, modo direto e modo de gateway. Com o modo de gateway, você pode se conectar ao gateway padrão ou ao gateway dedicado, dependendo do ponto de extremidade configurado.
Conectar-se ao Azure Cosmos DB usando o modo direto
Quando você se conecta ao Azure Cosmos DB usando o modo direto, seu aplicativo se conecta diretamente ao back-end do Azure Cosmos DB. Mesmo que você tenha diversas partições físicas, o roteamento de solicitação é manipulado totalmente no lado do cliente. O modo direto oferece baixa latência pois seu aplicativo pode se comunicar diretamente com o back-end do Azure Cosmos DB e não precisa de um salto de rede intermediário. Se você optar por se conectar com o modo direto, suas solicitações não usarão o gateway dedicado nem o cache integrado.
Conectar-se ao Azure Cosmos DB usando o modo gateway
Se você se conectar ao Azure Cosmos DB usando o modo gateway, seu aplicativo se conectará primeiro a um nó front-end, que manipula o roteamento da solicitação para os nós back-end apropriados. Como o modo gateway envolve um salto de rede extra, você pode observar uma latência um pouco maior quando comparado ao modo direto.
Ao conectar-se ao Azure Cosmos DB com o modo gateway, você pode se conectar com uma das seguintes opções:
- Gateway padrão – Embora o back-end, que inclui armazenamento e taxa de transferência provisionada, tenha capacidade dedicada por contêiner, o gateway padrão é compartilhado por diversas contas do Azure Cosmos DB. É prático para muitos clientes compartilhar um gateway padrão, pois os recursos de computação consumidos por cada cliente individual são pequenos.
- Gateway dedicado - neste gateway, o back-end e o gateway têm capacidade dedicada. O cache integrado exige um gateway dedicado pois ele requer CPU e memória significativas que são específicas para sua conta do Azure Cosmos DB.
Você deve se conectar ao Azure Cosmos DB usando o gateway dedicado para usar o cache integrado. O gateway dedicado tem um ponto de extremidade diferente do padrão fornecido com a conta do Azure Cosmos DB, mas as solicitações são roteadas da mesma forma. Quando você se conecta ao ponto de extremidade de gateway dedicado, seu aplicativo envia uma solicitação para o gateway dedicado, que, em seguida, encaminha a solicitação para diferentes nós do back-end. Se possível, o cache integrado fornece o resultado.
Diagrama da conexão do modo gateway com um gateway dedicado:
Provisionamento do gateway dedicado
Um cluster de gateway dedicado pode ser provisionado na API para contas de NoSQL. Um cluster de gateway dedicado pode ter até cinco nós, e você pode adicionar ou remover nós a qualquer momento. Todos os nós de gateway dedicados em sua conta compartilham o mesmo ponto de extremidade de gateway dedicado.
Nós de gateway dedicados são independentes entre si. Quando você provisiona vários nós de gateway dedicados, qualquer nó pode roteá-los para qualquer solicitação específica. Além disso, cada nó possui um cache integrado e separado. Os dados armazenados em cache em cada nó dependem dos dados gravados ou lidos recentemente através desse nó específico. Em outras palavras, se um item ou uma consulta for armazenado em cache em um nó, ele não será necessariamente armazenado em cache nos outros.
Para desenvolvimento, recomendamos começar com um nó, mas para produção, você deve provisionar três ou mais nós para alta disponibilidade. Saiba como provisionar um cluster de gateway dedicado com um cache integrado. O provisionamento de vários nós de gateway dedicados permite que o cluster de gateway dedicado continue roteando solicitações e atendendo a dados armazenados em cache, mesmo quando um dos nós do gateway dedicado não estiver disponível.
O gateway dedicado está disponível nos tamanhos a seguir. O cache integrado usa cerca de 50% da memória e o restante é reservado para metadados e solicitações de roteamento para partições de back-end.
Nome do Sku | vCPU | Memória |
---|---|---|
D4s | 4 | 16 GB |
D8s | 8 | 32 GB |
D16s | 16 | 64 GB |
Dica
Depois de criado, você pode adicionar ou remover nós de gateway dedicados, mas não pode modificar o tamanho dos nós. Para alterar o tamanho dos nós de gateway dedicados, você pode desprovisionar o cluster e provisioná-lo novamente em um tamanho diferente. Isso resultará em um curto período de inatividade, a menos que você altere o ponto de extremidade em seu aplicativo para usar o gateway padrão durante o reprovisionamento.
Há muitas maneiras diferentes de provisionar um gateway dedicado:
- Forneça um gateway dedicado usando o portal do Microsoft Azure
- Usar a API REST do Azure Cosmos DB
- CLI do Azure
- Modelo de ARM
- Observação: você não pode desprovisionar um gateway dedicado usando modelos ARM
Observação
Você pode provisionar um gateway dedicado em contas do Azure Cosmos DB com zonas de disponibilidade mediante solicitação. Procure cosmoscachefeedback@microsoft.com para saber mais.
Gateway dedicado em contas de várias regiões
Quando você provisiona um cluster de gateway dedicado em contas de várias regiões, clusters de gateway dedicados idênticos são provisionados em cada região. Por exemplo, considere uma conta do Azure Cosmos DB no leste dos EUA e Norte da Europa. Se você provisionar um cluster de gateway dedicado com dois nós D8 nessa conta, você terá quatro nós D8 no total - dois no Leste dos EUA e dois no Norte da Europa. Você não precisa configurar explicitamente gateways dedicados em cada região e seu ponto de extremidade de gateway dedicado permanece o mesmo. Também não há nenhuma alteração nas práticas recomendadas para a execução de failovers.
Como os nós em um cluster, os nós de gateway dedicados entre regiões são independentes. É possível que os dados armazenados em cache em cada região sejam diferentes, dependendo das leituras ou gravações recentes naquela região.
Limitações
Gateways dedicados são compatíveis apenas com a API para contas NoSQL.
Próximas etapas
Leia mais sobre o uso de gateway dedicado nos seguintes artigos:
- Cache integrado
- Configurar o cache integrado
- Perguntas frequentes sobre o cache integrado
- Tentando fazer o planejamento da capacidade para uma migração para o Azure Cosmos DB? Você pode usar informações sobre o cluster de banco de dados existente para fazer isso.
- Se você sabe apenas o número de vCores e servidores do cluster de banco de dados existente, leia sobre como estimar unidades de solicitação com vCores ou vCPUs
- Se souber as taxas de solicitação típicas da carga de trabalho do banco de dados atual, leia sobre como estimar unidades de solicitação usando o planejador de capacidade do Azure Cosmos DB