Ferramentas e SDKs

Lançado o Couchbase Go SDK 1.4.0!

Recentemente, lançamos outra versão secundária do Couchbase Go SDK: 1.4.0. Essa é uma nova versão secundária e, principalmente, inclui suporte para Observabilidade do tempo de resposta e Compressão transparente.

O que há nesta versão?

Adicionamos suporte para compressão transparente, autenticação de certificado de cliente e configurações de várias redes. Também adicionamos o Response Time Observability, que permite ver onde o tempo é gasto nas solicitações e identifica as respostas órfãs, conforme abordado em blogs anteriores.

Compressão transparente

O SDK agora compactará e descompactará automaticamente os documentos enviados ao servidor, se estiverem ativados no servidor. Isso pode levar a uma economia substancial na largura de banda e no tempo de transmissão. Por padrão, esse recurso é ativado tanto para a compactação quanto para a descompactação e é configurado por meio de opções de string de conexão:

  • compressão  - booleano, para ativar ou desativar a compactação no lado do cliente; o padrão é true.
  • compression_min_size  - int, o tamanho mínimo do documento (em bytes) para que um documento seja considerado para compactação; o padrão é 32 bytes.
  • compression_min_ratio  - float, tamanho compactado / tamanho original. A proporção mínima para que um documento compactado seja enviado compactado - o padrão é 0,83.

Você pode ler mais sobre compressão na seção documentação com mais detalhes técnicos na seção sdk-rfc.

Autenticação do certificado do cliente

A autenticação do certificado do cliente é um recurso para assinantes da Enterprise Edition que permite o uso de certificados X.509 para autenticar o cliente com o Couchbase Server. Isso significa que as conexões com o servidor são mais seguras e que o cliente pode ter certeza de que está se conectando apenas a servidores confiáveis. Para usar esse recurso, um certificado válido deve ser configurado no servidor e a identidade do usuário para o certificado do lado do cliente deve ter as funções corretamente atribuídas. A função caminho do certificado  e caminho das teclas  deve ser fornecido na string de conexão e o novo Certificador de autenticação{}  usado para autenticação de cluster.

Você pode ler mais sobre a autenticação de certificado de cliente em https://developer.couchbase.com/documentation/server/5.5/sdk/go/sdk-authentication-overview.html

Tempo de resposta Observabilidade

Esses são dois recursos novos, separados, mas também relacionados, projetados para entender melhor os tempos de resposta e possivelmente diagnosticar a origem das respostas lentas.

A observabilidade do tempo de resposta fornece informações que podem ser usadas para identificar operações de execução excepcionalmente longas, ajudando a descobrir onde os problemas estão ocorrendo - o Couchbase Server, um nó específico, a rede etc. Por padrão, é usada uma implementação do ThresholdLogTracer, mas ela pode ser trocada por sua própria implementação que siga o padrão de evolução do OpenTracing. Para evitar o preenchimento dos registros, o padrão de registro é uma base 10×10. Ou seja, os 10 time outs mais lentos dos últimos 10 segundos.

A saída registrada tem a seguinte aparência:

O que vemos é o tipo de serviço para o qual o registro se destina e quantas amostras foram coletadas. Vamos dar uma olhada em uma amostra com mais detalhes:

O que podemos ver aqui é que a operação foi um Get que levou um total de 7,4 milissegundos, dos quais 18 microssegundos foram gastos no servidor e 20 microssegundos foram gastos na decodificação da resposta. O last_operation_id e o last_local_id podem ser usados para identificar exclusivamente a solicitação e fazer a correspondência com os logs do servidor e/ou com o registro de respostas órfãs.

Você pode ler mais sobre o ThresholdLogTracer e o rastreamento em https://developer.couchbase.com/documentation/server/5.5/sdk/go/threshold-logging.html e https://developer.couchbase.com/documentation/server/5.5/sdk/go/tracing-from-the-sdk.html.

Uma resposta órfã é uma resposta recebida do servidor para uma solicitação que já atingiu o tempo limite no cliente. Quando isso ocorre, o cliente ainda lida com essa resposta e o registro de resposta órfã registra a mais lenta delas, juntamente com a duração no servidor. Isso é realizado, por padrão, na mesma base de 10×10 como acima, mas só tem suporte para operações KV.

A saída registrada tem a seguinte aparência:

Como acima, podemos ver o serviço para o qual o registro se destina e o tamanho da nossa amostra. Uma amostra em mais detalhes:

Podemos ver o endereço do servidor remoto (r), o tipo de operação (s), a duração do servidor (d) expressa em microssegundos e os identificadores exclusivos da solicitação (c e i). Podemos ver que o tempo limite mais longo tem uma duração de servidor de 10 milissegundos, portanto, nosso problema provavelmente não está no lado do servidor. Observe que a duração do servidor é o tempo que a solicitação passou no lado do servidor e não a duração total da solicitação.

A configuração do registro de respostas órfãs é feita por meio da string de conexão cluster.Connect. Há três campos de configuração:

  • registro de respostas órfãs  - valor booleano que define se o registro de respostas órfãs deve ou não ser ativado; o padrão é true.
  • orphaned_response_logging_interval  - um valor int expresso em milissegundos, define a duração de cada janela de registro; o padrão é 10 segundos.
  • orphaned_response_logging_sample_size  - um valor int, define quantas solicitações devem ser registradas por janela de registro; o padrão é 10 (sempre serão as x solicitações mais lentas da janela).
  • durações_do_servidor  - valor booleano que define se as durações de solicitação do lado do servidor devem ou não ser ativadas; o padrão é true e está disponível a partir do Couchbase Server 5.5.

Observe que, para que esses dois recursos funcionem, você deve estar usando Registro em log do gocb.

Suporte à configuração de várias redes

A configuração de várias redes permite que o SDK se conecte a clusters que expõem um conjunto diferente de nomes de host e portas em relação ao que eles usam internamente na rede (por exemplo, quando o cluster está em um contêiner diferente do aplicativo que usa o SDK). Atualmente, o suporte é considerado volátil e está sujeito a alterações a qualquer momento. O uso desse recurso é tratado por meio de uma nova propriedade chamada rede O valor da propriedade é passado na string de conexão usada em cluster.Connect. No momento, há três opções que podem ser usadas com essa propriedade: auto (esse também é o valor usado quando a opção está ausente na string de conexão ou vazia), default e external.

  • padrão  - fará com que o SDK use o nome do host/portas padrão fornecidos para cada nó.
  • externo  - fará com que o SDK use o nome do host/portas externas fornecidas para cada nó.
  • automático ou propriedade ausente - fará com que o SDK tente descobrir a configuração correta a ser usada para o nó.

Correções de bugs

A lista de atualizações e correções incluídas nessa versão pode ser encontrada na seção Notas de versão.

Obtendo

Obtenha a versão mais recente usando ir obter gopkg.em/couchbase/gocb.v1 .

Clonar o repositório aqui.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Charles Dixon, engenheiro de software, Couchbase

Charles Dixon é engenheiro de software da Couchbase. Ele trabalha no Couchbase Go SDK.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.