1. Alta disponibilidad de Eureka Server (centro de registro de servicios)
1.1 dependencias relacionadas con MAVEN
< parent > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-parent </ artifactId > < versión > 2.2.6.RELEASE </ version > < relativePath /> <! - lookup padre del repositorio -> </ padre > < propiedades > < project.build.sourceEncoding > UTF-8 </ project.build.sourceEncoding > <project.reporting.outputEncoding > UTF-8 </ project.reporting.outputEncoding > <! - la versión JDK -> < java.version > 1.8 </ java.version > <! - número de versión SpringCloud, la última versión estable oficial -> < spring-cloud.version > Hoxton.SR3 </ spring-cloud.version > </ properties > <! - Gestión de dependencias, utilizada para gestionar la dependencia de spring-cloud- > < dependencyManagement > < dependencias > < dependencia > <groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-dependencies </ artifactId > < versión > $ {spring-cloud.version} </ versión > < type > pom </ type > < scope > import </ scope > </ dependency > </ dependencies > </ dependencyManagement > < dependencias > <! -eureka 服务 端 依赖 jar 包-> < dependencia > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-netflix-eureka-server </ artifactId > </ dependency > <! - eureka 组件 组件 jar 包-> < dependencia > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-security </ artifactId > </dependencia > </ dependencias >
1.2 Configuración relacionada con Application.yml
servicio eureka una configuración
servidor:
puerto: 8761 #
Configuración de autenticación de seguridad
primavera:
aplicación:
nombre: EUREKA-HA
seguridad:
básico:
habilitado: verdadero
usuario:
nombre:
contraseña de usuario : contraseña123
eureka:
# Nombre de instancia de Eureka , el clúster se reconoce entre sí
:
nombre de host:
cliente peer1
:
serviceUrl : #
Dirección del centro de registro defaultZone: http: // usuario: contraseña123 @ peer2: 8762 / eureka /, http: // usuario: contraseña123 @ peer3: 8763 / eureka /
servicio eureka dos configuraciones
servidor:
puerto: 8762 #
Configuración de autenticación de seguridad
primavera:
aplicación:
nombre: EUREKA-HA
seguridad:
básico:
habilitado: verdadero
usuario:
nombre:
contraseña de usuario : contraseña123
eureka:
# Nombre de instancia de Eureka , el clúster se reconoce entre sí
:
nombre de host:
cliente peer2
:
serviceUrl : defaultZone: http: // user: password123 @ peer1: 8761 / eureka /, http: // user: password123 @ peer3: 8763 / eureka /
Servicio Eureka tres configuraciones
servidor:
puerto: 8763 #
Configuración de autenticación de seguridad
primavera:
aplicación:
nombre: EUREKA-HA
seguridad:
básico:
habilitado: verdadero
usuario:
nombre:
contraseña de usuario : contraseña123
eureka:
# Nombre de instancia de Eureka , basado en la
instancia de reconocimiento mutuo :
nombre de host:
cliente peer3
:
serviceUrl : defaultZone: http: // usuario: contraseña123 @ peer1: 8761 / eureka /, http: // usuario: contraseña123 @ peer2: 8762 / eureka /
1.2.2 Configure el archivo de hosts para identificar las direcciones de peer1, peer2 y peer3
Ruta del archivo de hosts del sistema de Windows: C: \ Windows \ System32 \ drivers \ etc
Pasos de modificación: ejecute CMD como administrador e ingrese el bloc de notas para abrir el Bloc de notas. Use el Bloc de notas para agregar contenido al archivo de hosts
Agregue contenido peer1, peer2, peer3 al archivo hosts
# la resolución del nombre localhost se maneja dentro del mismo DNS.
# 127.0.0.1 localhost
# :: 1 localhost
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
1.3 Código de inicio
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication // Esta anotación indica que el servicio puede ser una aplicación combinada. Múltiples servicios como clústeres, proporcionando funciones de registro y descubrimiento de servicios externamente @ EnableEurekaServer public class EurekaHaApplication { public static void main (String [] args) { SpringApplication.run (EurekaHaApplication. Class , args); } }
1.4 Resuelva otros servicios que no se han inyectado en instancias actualmente registradas con Eureka en la página
Deshabilite la protección CSRF de Spring Security, agregue una clase de configuración para deshabilitar csrf
import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.Web.confcurity. ; / ** * El servicio eureka no puede conectarse al registro * spring Cloud 2.0 La seguridad anterior tiene la verificación csrf habilitada de forma predeterminada. La verificación csrf de la seguridad debe ser falsa en el lado eurekaServer * @author computer * * / @EnableWebSecurity clase pública WebSecurityConfig extiende WebSecurityConfigurerAdapter { Configuración de anulación protegida anulada @Override (HttpSecurity http) lanza Exception { http.csrf (). disable (); super .configure (http); } }
1.5 Problema de réplicas no disponibles (fragmentos no disponibles) en la página eureka
Finalmente, se iniciaron con éxito tres servicios de eureka y los resultados son los que se muestran en la figura
Referencias: https://blog.csdn.net/longguo321/article/details/80493618
https://blog.csdn.net/liupeifeng3514/java/article/details/85273961