Conceptos básicos de SpringCloud (Hoxton.SR3): Capítulo 3, Implementación y construcción del servicio de autenticación altamente disponible del clúster Eureka

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

Causa uno: el elemento de configuración de dirección IP de preferencia está configurado incorrectamente
Por ejemplo, si prefer-ip-address: true está configurado en el servidor 8761, entonces debe usar defaultZone: http: // yourIP: 8761 / eureka / cuando se registre en los servidores 8762 y 8733, pero en este momento se puede encontrar que el nombre del host todavía se usa. Causa que ocurra un error.
Otra razón es que la dirección IP preferencial: verdadera se establece para los tres 8671,8762 y 8763, lo que hace que los nombres de host resueltos al final sean la misma IP, haciendo que la copia sea inutilizable.
 
Causa dos: el elemento de configuración de registro con eureka está configurado incorrectamente
Muchos blogs y materiales en Internet establecen este elemento en falso. En este momento, eureka no se registrará en otros servidores, por lo que se produce un error.
 
Razón tres: otras razones
Hay algunas otras razones a las que puede referirse aquí: Eureka está altamente disponible y los nodos aparecen bajo réplicas no disponibles

 

 

 

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

 

Supongo que te gusta

Origin www.cnblogs.com/wps54213/p/12716846.html
Recomendado
Clasificación