A, el perfil Eurake
springcloud componente central de Eureka es responsable de la arquitectura micro-servicio, funciones de gestión de servicio responsable para cada instancia de registro de servicio y el descubrimiento.
Eureka incluye componentes de servidor y cliente. Servidor, también se conoce como un registro de servicios, al servicio de registro y descubrimiento. El componente de cliente incluye consumidores de servicios y los productores de servicios. En la aplicación se está ejecutando, los productores registrados en el ejemplo propio servicio de registro de servicios, cuando los consumidores deben llamar a este servicio, el registro comenzará a encontrar el productor correspondiente, entonces puede obtener el servicio del consumidor.
La figura es un proceso relativamente simple consumo de servicios de registro, sino también un componente esencial de los procesos en ejecución Eureka, punto de Eureka en el lenguaje popular como un agente de bienes raíces, el propietario quiere alquilar una información Casa vinculado a los agentes inmobiliarios, agentes inmobiliarios y los inquilinos por renta de los recursos de información a la casa propia favorita
En segundo lugar, el proyecto para construir un registro Eurake
1. Crear un nuevo proyecto SpringBoot se muestra:
finsh punto siguiente en el último punto para completar la creación del proyecto
2. Importe Eureka dependiente, pom específica siguiente:
<? xml version = "1.0" encoding = "UTF-8"?> <xmlns proyecto = xmlns "http://maven.apache.org/POM/4.0.0": xsi = "http: //www.w3 .org / 2001 / XMLSchema instancia" xsi: schemaLocation = "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion> 4.0.0 </ modelVersion> <parent> <groupId> org.springframework.boot </ groupId> <artifactId> resorte de arranque-motor de arranque y los padres </ artifactId> <versión> 2.2.6.RELEASE </ versión > <relativePath /> <! - matriz de búsqueda desde el repositorio -> </ parent> <groupId> com.regedit </ groupId> <artifactId> regedit </ artifactId> <versión> 0.0.1-SNAPSHOT </ version> <nombre> regedit </ name> <description> proyecto Demo para primavera Boot </ description> <propiedades> <java.version> 1.8 </java.version> <primavera-cloud.version> Hoxton.SR3 </spring-cloud.version> </ properties> < dependencias> <dependency> <groupId> org.springframework.boot </ groupId> <artifactId> resorte de arranque-motor de arranque en la web </ artifactId> </ dependency> <dependency> <groupId> org.springframework.cloud </ groupId> <artifactId> primavera-nube-motor de arranque-netflix-Eureka-servidor </ artifactId> </ dependency> <dependency> <groupId> org.springframework.boot </ groupId> <artifactId> resorte de arranque-motor de arranque-seguridad </ artifactId> </ dependency> <dependency> <groupId> org.springframework.boot </ groupId> <artifactId> resorte de arranque-motor de arranque-test <artifactId /> <scope> test </ scope> <exclusiones> <exclusión> <groupId> org.junit.vintage </ groupId> <artifactId> junit-vendimia-motor </ artifactId> </ exclusión> </ exclusiones> </ dependency> </ dependencias> <DependencyManagement> <dependencias> <dependency> <groupId> org.springframework.cloud </ groupId> <artifactId> resorte de nube dependencias </ artifactId> <versión> $ {resorte cloud.version} </ versión> <type> pom </ type> <scope> importación </ scope> </ dependency> </ dependencias> </ DependencyManagement> <build> <plugins> <plug-in> <groupId> org.springframework.boot </ groupId> <artifactId> maven-primavera-boot-plugin </ artifactId> </ plugin> </ plugins> </ build> </ project>
3, se inicia la aplicación para añadir notas de clase EurekaServer, de manera que cuando se inicia SpringBoot, se iniciará registro EurekaServer
com.regedit empaquetar; org.springframework.boot.SpringApplication importación; org.springframework.boot.autoconfigure.SpringBootApplication importación; org.springframework.cloud.netflix.eureka.server.EnableEurekaServer importación; @SpringBootApplication @EnableEurekaServer RegeditApplication public class { void main (String [] args) {public static SpringApplication.run (RegeditApplication.class, args); } }
4. Configurar application.property o application.yml, formato yml que utilizan aquí, los principales parámetros de configuración del registro de información de Eureka, Eureka cliente después de cada registro, enviará un latido del corazón en el lado del servidor. El valor por defecto Eureka propio servidor es un cliente, es necesario especificar registro, que registerWithEureka: fetchRegistry falsa: falsa representación en sí es un servidor de Eureka, es un centro registrado. La configuración es la siguiente:
servidor: puerto: 8762 Eureka: ejemplo: nombre de host: 127.0.0.1 servidor: enable-auto-preservación: falsa desalojo de intervalo del temporizador-en-EM: 3,000 respuesta-cache-update-intervalo-EM: 3,000 respuesta-cache-auto -expiration-en-segundos: 180 cliente: registerWithEureka: falsa fetchRegistry: falsa ServiceUrl: defaultzone: http: // {$ eureka.instance.hostname}: $ {} server.port / Eureka / registro: config: ruta de clases: logback- spring.xml primavera: la seguridad: el usuario: nombre: admin contraseña: 123456
5. Para utilizar este http: // $ {usuario}: $ {password} @ $ {host}: $ {puerto} / Eureka / Registro de esta seguridad de primavera citado en la introducción de pom archivo spring-boot- código de autenticación de arranque de seguridad para abrir el paquete de la siguiente manera:
com.regedit empaquetar; org.springframework.security.config.annotation.web.builders.HttpSecurity importación; org.springframework.security.config.annotation.web.configuration.EnableWebSecurity importación; org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter importación; @EnableWebSecurity WebSecurityConfigurer clase pública se extiende WebSecurityConfigurerAdapter { @ Override protected void configure (HttpSecurity http) throws Exception { //开启认证 //为了可以使用http: // $ {usuario}: $ {password} @ $ {host}: $ { puerto} / Eureka /这种方式登录,所以必须是httpBasic http.csrf () desactivar () authorizeRequests () anyRequest () autenticada () y () httpBasic ()......; } }
6, esta configuración y el proyecto de construcción ha sido completado, inicie el código de programa de aplicación está estructurado de la siguiente manera:
7, visita: http: // localhost: 8762 Introduzca el nombre de usuario y la contraseña de la interfaz de la siguiente manera:
Tres, Eureka del lado del cliente para crear y registrar
1, el nuevo proyecto SpringBoot, dependencia de las importaciones, Pom servidor de archivos y el final de la misma aplicación de inicio anotaciones EurekaClient Agregar clase para indicar que se trata de un cliente, de la siguiente manera:
@SpringBootApplication @EnableDiscoveryClient clase pública SystemModuleJdbcApplication { void Main (args String []) {public static SpringApplication springApplication = new SpringApplication (SystemModuleJdbcApplication.class); springApplication.addListeners (nuevos InitUserRoleResources ()); springApplication.run (args); } }
2. Añadir la configuración en el archivo de configuración, se registrará a un centro de registro designado a Eureka
servidor: puerto: 8081 servlet: contexto-path: sistema / max-http-header-size: 10240 Tomcat: uri-Encoding: UTF-8 max-hilos: 500 max-connections: 10000 config: db: IP: 127.0.0.1 puerto: 3306 nombre de usuario: root contraseña: root @ 123456 regcenter: IP: 127.0.0.1 prot: 8762 nombre de usuario: admin contraseña: 123456 #当前使用配置 primavera: aplicación: nombre: systemCenter fuente de datos: url: jdbc: mysql: // {$ config. db.ip}: $ {} config.db.port / system_module characterEncoding = UTF-8 y useSSL = false y allowMultiQueries = true nombre de usuario: $ {} config.db.username contraseña: $ {config .db.password} servlet: de varias partes: max-file-size: 20 MB max-petición-size: 100 MB de registro: config: ruta de clases: logback-primavera-test.xml Eureka: cliente: register-con-eureka: la verdadera fetch-registro : true ##注册服务中心的配置 servicio-url: defaultzone: http: // {$ config.regcenter.username}: $ {} @ config.regcenter.password $ {} config.regcenter.ip: $ {config. regcenter.prot} / Eureka /
Dónde: defaultzone es el registro de direcciones, application.name es el nombre de la aplicación, entre la llamada de servicio de seguimiento es por lo general a través del nombre de la aplicación y la dirección de la aplicación de llamada.
3. Aplicación de inicio para ver el registro y encontró que este caso se ha registrado vinieron a este registro y ejemplos de nuestros servicios registrados básicamente completado, como se muestra a continuación: