Centro de configuración unificado SpringCloud (2)

Basado en el centro de configuración unificado Spring Cloud anterior (1) , actualizaremos, cómo permitir que la configuración unificada libere actualizaciones automáticamente para cada yml.

 

Configuración de actualización automática de Spring Cloud Bus

5d479813000185a719201080.jpg (1920 × 1080)

  • Principio de configuración de actualización automática de Spring Cloud Bus: Spring Cloud Bus se puede realizar y actualizar automáticamente. ¿Cómo lograrlo? A través del middleware de mensajes, el servidor de configuración proporcionará una interfaz / bus-refresh después de usar Bus. Luego, el webhook puede permitir que git acceda a esta interfaz. Después de acceder a esta interfaz, puede enviar la configuración modificada a la mitad del mensaje. Piezas

 

Inicio

Servidor de configuración y  cliente de configuración (ej. Pedido)

1. Para los proyectos de  servidor de configuración y microservicio de cliente de configuración , la versión modificada, la versión oficial no necesita ser modificada: la versión modificada del arranque de primavera es 2.0.0.BUILD-SNAPSHOT, porque 2.0.0.M3 usa springCloud Bus tiene errores , Spring Cloud modificó la versión Finchley.BUILD-SNAPSHOT.

2. Introducir dependencia en spring-cloud-starter-bus-amqp, agregar actualización e iniciar el proyecto del servidor de configuración.

3. Para el proyecto de microservicio de pedidos, spring-cloud-starter-feign se modifica a spring-cloud-starter-openfeign.Después de actualizar la versión, este componente se denomina openfeign.

5e915735000196c019201080.jpg (1920 × 1080)

4. Dirección de acceso MQ: localhost: 15672. Después de configurar y reiniciar el orden y las aplicaciones de configuración, aparecerán dos colas de mensajes en RabbitMQ, como se muestra en la figura.

# config server

spring:
  application:
    name: config
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/SpringCloud_Sell/config-repo
          username: [email protected]
          password: T#27h*E$cg@%}j
          basedir: /Users/admin/code/myProjects/java/imooc/SpringCloud_Sell/config/basedir
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
management:
  endpoints:
    web:
      expose: "*"

5. Además, la interfaz de actualización del bus no está expuesta de forma predeterminada y debe exponerse en el archivo de configuración de yaml. Después de configurar el reinicio, observe la salida del registro de la consola (* significa todo expuesto).

package com.imooc.order.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/env")
@RefreshScope
public class EnvController {

    @Value("${env}")
    private String env;

    @GetMapping("/print")
    public String print() {
        return env;
    }
}

6. Anote @RefreshScope en la clase que necesita actualizar automáticamente la configuración (en el controlador del servicio de pedidos) (la configuración se puede actualizar automáticamente una vez completada).

7. Después de cambiar la configuración del repositorio remoto de git, debe llamar a la interfaz de actualización del bus del servidor de configuración para que surta efecto, de dos maneras

  • Manual: curl -v -X POST "http: // XXX / actuator / bus-refresh"
    5e9159aa000191a019201080.jpg (1920 × 1080)
  • Automático: a través del webhook del servidor git
    5e915a9c0001d86119201080.jpg (1920 × 1080)
    5e1f2ab4000159c919201080.jpg (1920 × 1080)
  • Code Cloud Open Source China aún no es compatible con la configuración de springcloud. Primero agregue la dirección del servidor de configuración al monitor en el directorio webhook de la configuración del proyecto en github.
  • <!-- Config Server -->
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-monitor</artifactId>
    </dependency>

    Ps: El Servidor de configuración proporciona específicamente el componente de monitor, que no está disponible en el Cliente de configuración.

8. De esta forma, no importa cómo modifique la configuración de git, puede actualizarse y sincronizarse automáticamente.

 

Adjunto

5e915be70001005519201080.jpg (1920 × 1080)

  • Actualmente compatible con los repositorios Git de Spring Cloud y Webhook.
952 artículos originales publicados · elogiado 1820 · 890,000 vistas

Supongo que te gusta

Origin blog.csdn.net/Dream_Weave/article/details/105451209
Recomendado
Clasificación