Entrada rápida y práctica del centro de configuración distribuida de la serie SpringCloud

Puede introducir la siguiente configuración en maven usted mismo:

org.springframework.cloud spring-cloud-config-server usa la anotación @EnableConfigServer para indicar este proyecto de servidor de configuración

paquete com.example.springcloud.server;

importar org.springframework.boot.SpringApplication;
importar org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer
public class SpringcloudConfigServerApplication {

public static void main(String[] args) {
    SpringApplication.run(SpringcloudConfigServerApplication.class, args);
}

}

Cree un nuevo archivo de configuración bootstrap.yml y especifique la dirección del almacén de github:

server:
port: 8761
spring:
application:
name: springcloud-config-server
cloud:
config:
server:
git:
uri: https://github.com/your_github_account/springCloudEjemplos de
nombre de usuario: your_github_account
contraseña: your_github_password
rutas de búsqueda: config-repository
5. Implementación del código del cliente de configuración
También cree un nuevo proyecto SpringBoot Initialize y créelo rápidamente
. Inserte la imagen aquí para describir el
archivo de configuración pom:

org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-config configuración yaml, uri se especifica como la dirección del servidor de configuración, el perfil es una variable de entorno, que se puede especificar como dev (entorno de desarrollo), etiqueta Indica rama, maestro se refiere a la rama principal de github

servidor:
puerto: 8082
primavera:
aplicación:
nombre: springcloud-config-client
nube:
config:
uri: http://127.0.0.1:8761/
perfil: dev
etiqueta: maestro

Luego, tenemos que crear un nuevo archivo de configuración en el repositorio de github: la convención de nomenclatura debe ser el spring. Application.name más el perfil del cliente,
inserte la descripción de la imagen aquí .
En el archivo de configuración, simplemente escriba:

config.client.profile = springcloud-config-client-dev
test: inicie el servidor de configuración primero, luego inicie el cliente de configuración, escriba una prueba de ejemplo, agregue @RefreshScope para realizar la función de actualización

@RestController
@RefreshScope
clase pública ConnfigClientController {

@Value("${config.client.profile}")
private String profile;

@GetMapping(value = "/test")
public String test() {
    return this.profile;
}

}

Inicie el proyecto SpringBoot y pruebe:
inserte la descripción de la imagen aquí.
Durante el proceso de inicio del servidor de configuración, puede ver que el servidor de configuración extrae el archivo de configuración de github al caché local, específicamente el directorio AppData de la unidad C.
Inserte la descripción de la imagen aquí

6. Implementación de pull refresh en el
lado del cliente ¿Cómo implementar datos de configuración de pull-down en el lado del cliente? Puede integrar spring-boot-starter-actuator para lograr:

configuración pom:

org.springframework.boot spring-boot-starter-actuator spring-boot-starter-actuator 配置 : incluye 加上 rehresh 配置

management:
endpoints:
web:
# Prefix name, el predeterminado también es actuator
base-path: / actuator
# De forma predeterminada, solo información, acceso de salud está disponible, además de actualizar la
exposición:
incluye: información, salud, actualizar
endpoint:
salud:
mostrar-detalles: siempre
actualizar:
habilitado: verdadero

Visite el enlace del cliente, preste atención al método de publicación, http: // localhost: 8082 / actuator / refresh

Si el archivo de configuración de github no está actualizado:
inserte la descripción de la imagen aquí,
modifique el archivo de configuración, confirme y envíe a github,
inserte la descripción de la imagen aquí
, cuando llame a la interfaz, puede ver que el cliente de configuración obtiene datos del servidor de configuración:
inserte la descripción de la imagen aquí

7.
¿Qué es el bus de mensajes de Spring Cloud Bus ?
En un sistema con una arquitectura de microservicio, generalmente se usa un intermediario de mensajes ligero para construir un tema de mensaje común, y todas las instancias de microservicio en el sistema están vinculadas. Dado que el mensaje generado en este tema será monitoreado y consumido por todas las instancias, se denomina bus de mensajes.
¿Qué es Spring Cloud Bus?
Spring Cloud Bus es un marco utilizado para vincular nodos de sistemas distribuidos con sistemas de mensajes ligeros. Integra el mecanismo de procesamiento de eventos de Java y las funciones de middleware de mensajes.

Spring Cloud Bus puede administrar y propagar mensajes entre mensajes distribuidos, al igual que un ejecutor distribuido, que puede usarse para transmitir cambios de estado, envío de eventos, etc., y también puede usarse como un canal de comunicación entre microservicios

Después de leer la teoría, ¿parece que no lo entiendes? Así que comencemos por el estudio anterior. La introducción anterior explica que como centro de configuración distribuido, al menos debería tener la función de enviar mensajes, por lo que el rol de este centro de configuración puede ser jugado por el servidor de configuración, y el efecto que se logra es el servidor de configuración (centro de configuración). Actualice los datos, el cliente puede actualizar sincrónicamente, haga un dibujo para una explicación:
inserte la descripción de la imagen aquí

1. El centro de configuración (servidor de configuración) ejecuta la actualización de bus, la interfaz de actualización proporcionada por Spring Cloud Bus, y el centro de configuración extrae datos del almacén de git al almacén de git local.
2. Después de ejecutar la actualización de bus, envía el mensaje al bus de la nube de Spring (mensaje Bus), el bus de mensajes escribe el mensaje en el tema de la cola de mensajes (rabbitMQ)
3. Siempre que se suscriba al tema de la cola de mensajes, puede escuchar el mensaje de Spring Cloud Bus (basado en rabbitmq)
4. Después de escuchar, el cliente de configuración se iniciará desde el servidor de configuración Tire para actualizar los datos de configuración.
En resumen, todas las instancias de Config Client escuchan el mismo tema en RabbitMQ. Cuando un servicio actualiza los datos, colocará esta información en el tema para que otros servicios que escuchen el mismo tema puedan obtenerla. Notifique y luego actualice su propia configuración.Por supuesto, esta operación de actualización no tiene que colocarse en el servidor de configuración, pero también puede ser activada por un cliente, siempre que el mensaje se envíe al bus de mensajes.

8. Instalación e implementación de Docker RabbitMQ
presenta principalmente la versión de Docker, operación de imagen de Docker común:
inserte la descripción de la imagen aquí

Consulta de espejo rabbitMQ:

La versión de administración, si no se especifica, será la última versión más reciente.

docker search rabbitmq: administración
inserte la descripción de la imagen aquí para
extraer la imagen:

docker pull rabbitmq: administración para
ver la lista de imágenes de docker:

Imágenes de
Docker Operación de contenedor de Docker:
ok, después de ejecutar el comando anterior, la imagen se ha extraído al almacén local y, a continuación, se puede llevar a cabo la operación de contenedor para iniciar rabbitMQ

Versión simple

docker ejecutar -d -p 5672: 5672 -p 15672: 15672 --nombre rabbitmq rabbitmq: gestión
-d operación en segundo plano
-p puerto implícito
-nombre especificar nombre rabbitMQ
versión compleja (establecer contraseña de cuenta, nombre de host)

docker run -d -p 15672: 15672 -p 5672: 5672 -e RABBITMQ_DEFAULT_USER = admin -e RABBITMQ_DEFAULT_PASS = admin --name rabbitmq --hostname = rabbitmqhostone rabbitmq: administración
-d operación en segundo plano
-p puerto implícito
--name especifica el nombre de rabbitMQ
RABBITMQ_DEFAULT_USER cuenta de usuario designada
RABBITMQ_DEFAULT_PASS contraseña de cuenta designada Después de
ejecutar el comando anterior, visite: http: // ip: 15672 /

Contraseña de cuenta predeterminada: invitado / invitado
inserte la descripción de la imagen
aquí inserte la descripción de la imagen aquí
Otros comandos de contenedor comunes:

Ver contenedores en ejecución

Ver todos los contenedores con el comando docker ps -a

docker ps
iniciar el contenedor

por ejemplo: Docker start 9781cb2e64bd

docker start CONTAINERID [ID de contenedor]
detener contenedor

docker stop CONTAINERID [ContainerID]
eliminar un contenedor

docker rm CONTAINERID [ID de contenedor]
ver el registro del contenedor de Docker

por ejemplo: registros de Docker 9781cb2e64bd

Docker logs container-name [container-name] / container-id [container ID]
9. Actualización dinámica de Spring Cloud Bus
Con el aprendizaje anterior, continúe con la práctica de ejemplo de código, configuración de pom del servidor de configuración:

org.springframework.boot spring-boot-starter-actuator org.springframework.cloud spring-cloud-starter-bus-amqp yaml 配置 : 开放 bus-refresh

gestión:
puntos finales:
web:
ruta base: /
exposición del actuador :
incluye: información, estado, actualización, actualización de bus
punto final:
estado:
mostrar-detalles:
actualizar siempre :
habilitado: verdadero
加上 rabbitmq 配置

Configuración de RabbitMQ

rabbitmq:
host: 192.168.6.155
puerto: 5672
nombre de usuario:
contraseña de invitado
: host virtual invitado : /
Modificación de ejemplo de código de cliente de configuración, configuración de pom:

org.springframework.cloud spring-cloud-starter-bus-amqp también debe configurarse con rabbitMQ, para que pueda suscribirse a las actualizaciones:

Configuración de RabbitMQ

rabbitmq:
host: 192.168.6.155
puerto: 5672
nombre de usuario:
contraseña de invitado :
host virtual de invitado : / El
cliente debe modificarse, actualizar y habilitar debe cambiarse a verdadero, el seguimiento es para el seguimiento y se puede activar según sea necesario

spring:
cloud:
bus:
enabled: true
refresh:
enabled: true
trace:
enabled: true
Nota: Para actualizar en tiempo real, se debe agregar @RefreshScope

Centro de configuración para actualización de autobuses
Optimización del sitio web de Shenzhen www.zg886.cn

Supongo que te gusta

Origin blog.csdn.net/weixin_45032957/article/details/108530361
Recomendado
Clasificación