Perfis de aplicativo

Um perfil de aplicativo, ou perfil de app, armazena configurações que informam à instância do Cloud Bigtable como processar solicitações de entrada com base em um aplicativo. Quando um dos aplicativos se conecta a uma instância do Cloud Bigtable, ele pode especificar um perfil de app, e o Cloud Bigtable usa esse perfil de app em todas as solicitações enviadas pelo aplicativo por essa conexão.

Os perfis de app afetam como os aplicativos se comunicam com uma instância que usa replicação. Como resultado, os perfis de app são especialmente úteis para instâncias com 2 ou mais clusters. Mesmo que a instância tenha apenas um cluster, use um único perfil de app para cada aplicativo executado ou para componentes diferentes de um único aplicativo. Em seguida, é possível visualizar gráficos separados das métricas do Cloud Bigtable para cada perfil de app.

Nesta página, conheça as configurações controladas por um perfil de app e saiba como os perfis funcionam com o aplicativo. Para ver exemplos de configurações que podem ser usadas para implementar casos de uso comuns, consulte Exemplos de configurações de replicação. Para detalhes sobre como criar e gerenciar perfis de app, consulte Como configurar perfis de app.

Antes de ler esta página, familiarize-se com a visão geral da replicação do Cloud Bigtable se você usar perfis de app para configurar a replicação.

Configurações em perfis de app

Um perfil de app define a política de roteamento usada pelo Cloud Bigtable. Ele também controla se transações de linha única são permitidas.

Política de roteamento

Um perfil de app especifica a política de roteamento que o Cloud Bigtable precisa usar em cada solicitação.

  • O roteamento de cluster único encaminha todas as solicitações para um cluster na instância. Caso esse cluster fique indisponível, será preciso fazer failover manualmente para outro cluster.

  • O roteamento de vários clusters encaminha automaticamente as solicitações para o cluster mais próximo em uma instância. Se o cluster ficar indisponível, o tráfego realizará automaticamente o failover para o cluster disponível mais próximo. O Cloud Bigtable considera que os clusters em uma única região são equidistantes, mesmo que estejam em zonas diferentes.

Para mais informações sobre failovers, consulte Failovers. = Para saber como concluir um failover, consulte Como gerenciar failovers.

Transações de linha única

No Cloud Bigtable, as leituras e as gravações são sempre atômicas no nível da linha. O Cloud Bigtable não fornece atomicidade acima do nível da linha. Por exemplo, o Cloud Bigtable não aceita transações que atualizam de maneira atômica mais de uma linha.

Porém, o Cloud Bigtable também aceita algumas operações de gravação que exigiriam uma transação em outros bancos de dados:

  • Operações de leitura/modificação/gravação, inclusive incrementos e acréscimos. Uma operação de leitura/modificação/gravação lê um valor, incrementa ou acrescenta ao valor, além de gravar o valor atualizado na tabela.
  • Operações de verificação/mutação, também conhecidas como mutações ou gravações condicionais. Em uma operação de verificação e mutação, o Cloud Bigtable verifica uma linha para saber se atende a uma condição especificada. Caso a condição seja atendida, o Cloud Bigtable gravará novos valores na linha.

Na verdade, o Cloud Bigtable usa transações de linha única para concluir essas operações. Entre essas operações estão leituras e gravações, e todas as leituras e gravações são executadas de maneira atômica, mas as operações ainda continuam atômicas apenas no nível da linha.

Conflitos entre transações de linha única

Cada cluster em uma instância do Cloud Bigtable é um cluster principal que aceita leituras e gravações. Dessa maneira, operações que exigem transações de linha única podem causar problemas quando você ativa a replicação. Por exemplo, suponhamos que uma célula contenha o valor ABC e você envie duas operações de acréscimo para clusters diferentes. Um acréscimo altera o valor para ABCDEF e outro altera o valor para ABCXYZ. Como o Cloud Bigtable resolve este conflito?

Para ajudar a evitar esses problemas, o Cloud Bigtable exige que cada perfil de app especifique se permite transações de linha única. Ele também evita que você ative transações de linha única em um perfil de app que usa roteamento multicluster, porque não há maneira segura de ativar esses recursos de uma só vez.

O Cloud Bigtable também avisará se você ativar transações de linha única em dois perfis de app diferentes com ambos usando o roteamento de cluster único e apontando para clusters diferentes. Caso opte por criar esse tipo de configuração, você precisará garantir que não esteja enviando solicitações de leitura/modificação/gravação conflitantes ou de verificação/mutação para dois clusters diferentes.

Como perfis de app funcionam

Um perfil de app especifica as configurações usadas pelo Cloud Bigtable para processar solicitações de entrada de uma instância.

Muitos usuários do Cloud Bigtable têm vários aplicativos que se conectam à mesma instância. Por exemplo, talvez haja um aplicativo que veicule dados para clientes mediante a solicitação e outro aplicativo que execute alguns jobs em lote para analisar os dados. Para processar esses aplicativos diferentes, você precisa criar vários perfis de app, pelo menos um para cada aplicativo, e configurar cada perfil de app com as configurações certas para esse aplicativo. Essa configuração facilita a alteração das definições de um aplicativo, mas não de outros.

Você também pode ter um único aplicativo que realize várias funções, como visualizar os dados atuais e consultar os dados históricos. Para processar essas funções diferentes, você precisa criar um perfil de app para cada função. Dessa maneira, configure cada função de maneira diferente e atualize as configurações para uma função, e não outras.

Cada instância tem um perfil de app default, e é possível criar perfis de app personalizados para cada instância também. As seções abaixo descrevem perfis de app default e personalizados.

Ao se conectar à instância, use o perfil de app para especificá-lo no código. Caso você não especifique um perfil de app, o Cloud Bigtable usa o perfil de app padrão da instância.

Perfil de app padrão

Quando você cria uma instância, o Cloud Bigtable gera um perfil de app padrão para a instância. Caso o aplicativo não especifique um perfil de app ou você use o shell do HBase para se conectar à instância, o Cloud Bigtable usará as configurações no perfil de app padrão. É possível visualizar e alterar essas configurações a qualquer momento.

As configurações no perfil de app padrão de uma instância dependem do número de clusters que a instância tinha quando você a criou:

Perfis de app personalizados

Crie muitos perfis de app personalizados diferentes para cada instância. Use perfis de app personalizados para controlar como cada aplicativo ou função do aplicativo interage com uma instância. Por exemplo, use um perfil para um aplicativo em lote para isolar o tráfego para um único cluster e usar outro perfil para oferecer alta disponibilidade a outro aplicativo.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Bigtable