Serviço de eventos do Couchbase foi introduzido em Lançamento do Couchbase Data Platform 5.5.  A versão 6.0 da plataforma de dados Couchbase apresentou TemporizadoresSemelhante ao Práticas recomendadas de indexação que publicamos anteriormente, vamos dar uma olhada em algumas práticas recomendadas quando se trata de usar o Couchbase Eventing Service:

  1. Sobre depuração e capacidade de diagnóstico 

(a) Nunca use o depurador em ambientes de produção. Um thread é alocado para a sessão do depurador quando ele está ativado. O fato de o depurador estar ativado (ou seja, ligado) em ambientes de produção pode levar a eventos fora de ordem para um determinado documento. (A capacidade de ativar/desativar o depurador em diferentes ambientes está disponível na versão 6.0).

(b) Os arquivos de registro de aplicativos são rotacionados por padrão. Atualize o tamanho do arquivo de log com base na sua política de rotação de logs.

2. Não implemente funções que levem a gravações em cascata, ou seja, a função A que escuta o bucket A grava no bucket B e a função B que escuta o bucket B grava no bucket A.

3. Sempre envolva o código Javascript na função usando um bloco try-catch para capturar todas as exceções em tempo de execução; o registro de exceções garante que as mensagens sejam capturadas nos arquivos de registro específicos do aplicativo.

4. No Bucket de Metadados: 

(a) Não libere o compartimento de metadados quando as funções forem implantadas. O bucket de metadados é usado para armazenar muitas informações relacionadas ao sistema que são usadas pelo Couchbase Eventing Service. A descarga do bucket de metadados pode levar à perda de informações do ponto de verificação, o que pode levar a Serviço de eventos perder o controle da sequência de mutações que estão sendo processadas. 

(b) Evite usar um compartimento efêmero como compartimento de metadados, pois ele poderá ejetar itens se o uso da memória ultrapassar a cota. A ejeção de itens do compartimento de metadados pode resultar em comportamentos imprevisíveis, como perda de eventos de cronômetro, disparo de eventos duplicados etc.  

(c) Recomendamos ter réplicas suficientes para o bucket de metadados para evitar a perda de cronômetros e a ocorrência de eventos duplicados, no caso de uma ou mais falhas no nó do serviço de dados. 

(d) Não use o bucket de metadados para outros aplicativos. O Couchbase Eventing Service prefixa todas as informações do sistema que estão sendo armazenadas no bucket de metadados com uma chave exclusiva. Embora esse namespacing da chave ajude a diferenciar outros aplicativos que possam ser inseridos no mesmo bucket, é recomendável que os clientes não insiram novos documentos nesse bucket de outros aplicativos, nem atualizem/excluam os documentos existentes inseridos pelo Couchbase Eventing Service.

5. As estatísticas exibidas no console de administração para uma determinada função devem ser usadas para provisionamento e monitoramento da infraestrutura. O backlog da função deve ser estável e, se estiver aumentando, é necessário implantar mais nós de Eventing ou atribuir mais trabalhadores/nó de Eventing para a função em questão.

eventing statistics

6. Se houver muitos tempos limite para uma determinada função, entenda a causa raiz e considere aumentar o valor do tempo limite (nas configurações de uma determinada função). Se o aumento do tempo limite não for uma opção, tente alocar mais recursos (núcleos) para os nós de Eventing ou adicione mais nós de Eventing para aumentar a taxa de transferência do processamento.

7. Ao criar funções para arquivamento de dados que usam temporizadores, estude a lista de pendências e distribua um tempo delta suficiente antes da expiração real. Isso serve para garantir que o documento exista no bucket se for acessado dentro do cronômetro. Caso contrário, passe o documento como um contexto no cronômetro (isso é semelhante a "Pass By Value").

8. Entenda os limites de feed suportados pelo Eventing Service. Prefira usar "From Now" para economizar tempo e poder de processamento quando as mutações mais antigas em um bucket não precisarem ser processadas.

9. O ideal é que os nós que executam o Couchbase Eventing Service não tenham outros serviços do Couchbase em execução nos mesmos nós. O Couchbase Eventing Service é um serviço orientado para a computação e, portanto, os nós que o executam devem ter mais núcleos do que RAM.

10. O Couchbase Server desduplica várias atualizações em um documento. Entenda como a desduplicação e a ordenação de mutações funcionam no aqui.

Para ver uma demonstração de como o Couchbase Eventing Service processa um bilhão de documentos em menos de 30 minutos, confira Apresentação/palestra do Connect Silicon Valley'18. Além disso, de Conecte Nova York'18 (no início deste ano).

Autor

Postado por Venkat Subramanian, gerente de produtos

Venkat trabalha com desenvolvimento e gerenciamento de produtos e vem desenvolvendo plataformas e produtos de dados/análise. Uma parte significativa de sua experiência foi na Oracle, onde passou de engenheiro da equipe de Enterprise Manager da Oracle a gerente de produtos do conjunto de produtos de BI/Analytics da Oracle. No passado, ele trabalhou em startups, ajudando a desenvolver produtos de aprendizado de máquina/NLP e sistemas de decisão distribuídos. Ele está sempre por perto em @venkasub.

Deixar uma resposta