No blog anterior, colocamos os arquivos de configuração em nossos respectivos serviços, mas há uma desvantagem em fazer isso. Depois que a configuração for modificada, devemos desligar e modificar os arquivos de configuração antes de entrar on -line. Se houver poucos serviços, é compreensível fazer isso. No entanto, se houver centenas de serviços, o gerenciamento de configuração distribuído será necessário no momento. E a Spring Cloud Config é criada para resolver esse problema. A seguir, é apresentada uma combinação de GitLab para implementar a construção de um centro de configuração distribuído. O Spring Cloud Config Configuration Center consiste no final do servidor e no final do cliente.
Pré-requisito: Crie um novo arquivo de configuração ConfigServer-dev.properties sob o projeto no Gitlab
1. Configure o servidor
1. Adicione dependências
<Depencency> <GrupidId> org.springframework.cloud </frugid> <TRATIFACTID> Spring-cloud-config-sever </stardifactId> </dependency>
2. Ativar suporte na classe principal do aplicativo
@EnableConfigserver
3. Configure o arquivo Application.yml
Servidor: Porta: 8888 Spring: Aplicativo: Nome: Config Cloud: Config: Server: Git: Uri: https://gitlab.xxx.com/xxxxx/xxxx.git # Configure o endereço do repositório GitLab. Observe que os paths de pesquisa: /config-repo # o endereço relativo no endereço do repositório GitLab pode ser configurado com múltiplo, uso e divisão. Nome de usuário: seu nome de usuário # gitlab repositório de conta senha: sua senha # gitlab repositório senha
NOTA: Se o arquivo de configuração for colocado no diretório raiz do repositório Git, não há necessidade de usar o parâmetro de pesquisa de pesquisa. O arquivo de configuração neste exemplo está no diretório Config-Repo; portanto, use o parâmetro de pesquisa para solicitar o servidor de configuração a pesquisar o subdiretório Config-Repo.
4. Inicie o servidor e entre http: // localhost: 8888/configserver/dev/mestre no navegador
{"name": "configserver", "perfis": ["dev"], "etiqueta": "mestre", "versão": "073cda9ce85a3eed00e406f4ebcc4651ee4d9b19", "Estado": "nulo" "https://gitlab.xxx.com/xxxxx/project/config-repo/configserver.properties", "fonte": {"name": "chhliuxyh", "hello": "eu sou o rei do mundo !!!Você pode ver que o lado do servidor já pode ler o arquivo de configuração do GitLab. Você pode acessar recursos no GitLab no formulário abaixo
/{Application} /{perfil} [ /{etc.Por exemplo, digite: http: // localhost: 8888/configserver-dev.yml no navegador, e o resultado é o seguinte:
Olá: Eu sou o rei do mundo !!! Nome: Chhliuxyh Perfil: Perfil-Default
2. Configure o cliente
1. Adicione dependências de POM
<Depencency> <GroupId> org.springframework.cloud </frupid> <TRATIFACTID> Spring-cloud-starter-config </starfactid> </pendence> <pendesency> <purgid> org.springframework.boot </grupo> <Artifactid> Spring-Boot Starter-WeBeb <Artiftif <stif>
2. Configure o arquivo bootstrap.yml
NOTA: O arquivo de configuração aqui precisa ser colocado no arquivo bootstrap.properties ou bootstrap.yml, porque a configuração da configuração precederá o aplicativo.properties e o carregamento de bootstrap.properties também é precedente por aplicativo.properties.
Servidor: Porta: 8889 Spring: Aplicação: Nome: ConfigServer # Deve ser consistente com o prefixo do arquivo de configuração. Por exemplo, nosso nome de arquivo de configuração aqui é configserver-dev.properties, por isso precisamos configurá-lo como configserver nuvem: config: uri: http: // localhost: 8888/// Configure o perfil do URL do Spring Cloud Server: Dev # Label de perfil: mestre #
3. Verifique o cliente
Adicione um novo controlador ao cliente
pacote com.chhliu.springcloud.config; importar org.springframework.beans.factory.annotation.value; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbootApplication; importar org.springframework.cloud.context.config.annotation.refrescópio; importar org.springframework.web.bind.annotation.getMapping; importar org.springframework.web.bind.annotation.restcontroller; @SpringbooTApplication @restcontroller @refreshscope // anotação @refreshscope indica que o cliente de configuração também atualiza o valor da propriedade injetado quando a configuração do servidor altera a classe pública SpringCloudConfigClientApplication {public static void main (string [] args) {springApplication.rnation (springnUld; } @Value ("$ {hello}") // Leia as propriedades no arquivo de configuração do GitLab. Se lermos o valor, significa que o cliente está OK Private String Perfil; @GetMapping ("/hello") public string hello () {return this.profile; }}Visite no navegador: http: // localhost: 8889/hello, o resultado é o seguinte:
Eu sou o rei do mundo !!!
Isso significa que o cliente já pode obter o valor do servidor.
3. Atualização dinâmica
Atualize as configurações gerenciadas da Spring Cloud Config sem reiniciar o cliente
1. Atualize o valor da propriedade correspondente ao Hello no arquivo de configuração ConfigServer-dev.properties no repositório GitLab
2. Visite http: // localhost: 8888/configserver/dev/mestre e descobri que o conteúdo do lado do servidor foi atualizado
3. Envie uma solicitação de postagem para o cliente Conft http: // localhost: 8889/atualizar e retorne 200 OK. Visite http: // localhost: 8889/Olá novamente, pode -se ver que o valor do atributo de leitura foi atualizado dinamicamente sem reiniciar o serviço do cliente.
PS: Para obter uma atualização dinâmica, você precisa adicionar o seguinte iniciador ao arquivo POM
<Depencency> <PuerpId> org.springframework.boot </frugiD> <ArtifactId> Spring-boot-starter-actuator
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.