springCloud - actualización automática de configuración del centro de configuración

Primero, instale rabbitmq

1.1
Si desea utilizar spring cloud amqp, debe instalar rabbitmq. Podemos descargarlo a través del sitio web oficial https://www.rabbitmq.com/download.html . Utilizo una Mac, después de descargar y descomprimir, ejecuto $ RABBITMQ_HOME / sbin / rabbitmq-server para iniciar rabbitmq.

El usuario y la contraseña predeterminados de rabbitmq son invitados, y el puerto predeterminado es 5672

No diré mucho sobre otros rabbitmq.

En segundo lugar, transformar config-server y client-a

2.1
Agregar archivos pom bajo los dos módulos config-server y client-a

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Aquí se explica que spring-boot-starter-actuator es el módulo de monitoreo que viene con spring-boot. Si queremos usar spring-cloud-starter-bus-amqp, también debe agregarse.

2.2
Modifique el archivo de configuración del módulo cliente-a, principalmente para agregar la configuración de rabbitmq, la modificación es la siguiente y no es necesario modificar el archivo de configuración del servidor de configuración

server:
  port: 8910

eureka:
  client:
    serviceUrl:
          defaultZone: http://localhost:8010/eureka/

spring:
  application:
      name: client-a
  cloud:
      config:
        discovery:
          enabled: true #开启通过服务来访问Config Server的功能
          service-id: config-server
        profile: dev
        label: master

  rabbitmq:
      host: localhost
      port: 5672
      username: guest
      password: guest

2.3
Tenga en cuenta que para lograr actualizaciones de configuración automáticas, aquí debe modificar el Client-a TestController, agregar la anotación @RefreshScope

@RestController
@RefreshScope
public class TestController {
    ...
}

2.4
Reiniciar config-server y client-a

Puede prestar atención al registro de inicio, debe haber una sección de
osbaemvc.EndpointHandlerMapping: asignada "{[/ bus / refresh], métodos = [POST]}"
Así es como se activa la actualización de la configuración.

Abra http: // localhost: 8910 / getProperties y debería ver que la configuración sigue siendo la anterior

Modificar el archivo de configuración en git

Acceda a http: // localhost: 8030 / bus / refresh en el centro de configuración como una publicación para activar la actualización de la configuración, consulte el registro local, config-server y client-a tendrán el registro de actualización de la configuración

Abra http: // localhost: 8910 / getProperties nuevamente y debería ver que la configuración se ha actualizado

2.5
Aunque la configuración se puede actualizar sin reiniciar el servicio, aún necesitamos operarlo manualmente, lo que aún no es deseable.
Por lo tanto, git webhooks se usará aquí para lograr actualizaciones de configuración automáticas.

Abra la dirección del repositorio de configuración en git y agregue webhooks

La URL de carga útil anterior completa la dirección de nuestro centro de configuración para activar la actualización, por supuesto, no puede escribir localhost aquí, debe acceder a la dirección desde Internet.

También hay una verificación de clave secreta en ella. Si se completa aquí, el cifrado.key debe escribirse en el archivo de configuración correspondiente.

Publicado 7 artículos originales · 69 alabanzas · 200,000+ visitas

Supongo que te gusta

Origin blog.csdn.net/u014320421/article/details/79700947
Recomendado
Clasificación