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.