Em aplicações distribuídas, frequentemente é necessário modificar propriedades de configuração, como atualizar strings de conexão de banco de dados e endereços de cache. Se não houver muitas aplicações, você pode modificá-las manualmente; quando houver muitas aplicações, a configuração distribuída é muito importante, este artigo explica a arquitetura de armazenamento chave/valor do .net/c# baseada no Consul para implementar a configuração distribuída.
Instale o Cônsul
Breve introdução
Consul é uma ferramenta de descoberta e registro de serviços distribuída e altamente escalável.
Consul inclui principalmente as seguintes características:
- Descoberta de serviços: Suporte para registro e descoberta de serviços tanto para protocolos HTTP quanto DNS.
- Monitoramento de Verificações: Suporta múltiplas verificações de saúde.
- Armazenamento de Chave/Valor: Suporta armazenamento distribuído de dados KV via API HTTP.
- Suporte a múltiplos data centers: Qualquer número de data centers é suportado.
Instalação
Endereço de Download:
O login do hiperlink está visível.
Este artigo utiliza o Windows 10 x64 como ambiente de teste.
Após baixar e descompactar, execute usando o comando cmd, o código é o seguinte:
dev significa rodando no modo de desenvolvimento, e o parâmetro -client pode ser usado para especificar qual IP pode ser acessado pelo cliente, por exemplo, -client 127.0.0.1 significa que pode ser usado, e no modo de desenvolvimento, os dados não serão preservados.
(modo desenvolvedor, modo cluster recomendado para ambientes de produção)
Acesso:http://127.0.0.1:8500/ui/dc1/servicesVeja abaixo:
Interface KV
Endereço da Documentação da API:
O login do hiperlink está visível.
Primeiro, uso uma página online e crio um novo par chave/valor.
Obtenha o valor pelo caminho da solicitação GET /v1/kv/:key.
http://127.0.0.1:8500/v1/kv/test
[ { "LockIndex": 0, "Chave": "teste", "Bandeiras": 0, "Value": "aXRzdnNlLmNvbQ==", "CreateIndex": 194, "ModifyIndex": 194 }
]
- CreateIndex é um valor interno de índice que representa quando a entrada foi criada.
- ModifyIndex é o último índice a modificar essa chave. Esse índice corresponde ao valor do cabeçalho retornado por X-Consul-Index na resposta, e pode ser definido por ? O parâmetro de consulta de índice é usado para estabelecer consultas bloqueantes. Você pode até realizar consultas bloqueadoras contra toda a subárvore da loja KV: e se? recurse fornece uma consulta, e o valor retornado X-Consul-Index corresponde ao valor mais recente de ModifyIndex no prefixo; usando a consulta bloqueadora ?index espera até que qualquer chave nesse prefixo seja atualizada.
- LockIndex é o número de vezes que a chave na fechadura foi adquirida com sucesso. Se a fechadura estiver segurada, a chave de Sessão fornecerá a sessão que possui a fechadura.
- A chave é apenas o caminho completo da entrada.
- Flags são inteiros opacos sem sinal que podem ser atribuídos a cada entrada. Os clientes podem escolher usar essa opção, mas faz sentido para a aplicação deles.
- Value é um blob de dados codificado em base64.
.NET/C# Leitura e escrita de chave/valor
Primeiro, crie um projeto .NET 4.6.1 e use o Nuget para instalar os pacotes necessários, conforme segue:
O código é o seguinte:
As renderizações são as seguintes:
- A chave-chave é sensível a maiúsculas minúsculas
- Chave duplicada, valores serão sobrescritos
(Fim) |