Use Eureka para lograr el gobierno de servicios
Función: Realice el gobierno de servicios (registro de servicios y descubrimiento)
Introducción: Spring Cloud Eureka es un módulo de gobierno de servicios bajo el proyecto Spring Cloud Netflix. El proyecto Spring Cloud Netflix es uno de los subproyectos de Spring Cloud. Su contenido principal es empaquetar una serie de productos de código abierto de Netflix. Proporciona integración de Netflix OSS autoconfigurada para aplicaciones de arranque de primavera. Con algunas anotaciones simples, los desarrolladores pueden configurar rápidamente módulos de uso común en sus aplicaciones y construir un enorme sistema distribuido. Sus módulos principales incluyen: Discovery de servicios (Eureka), interruptor de circuito (Hystrix), Ruting Intelligent (ZUUL), equilibrio de carga del cliente (cinta), etc.
Proyecto Práctica práctica:
Centro de registro de servicio: Eureka-Server
Función: el Centro de registro de servicios proporciona función de registro de servicios
Proveedor de servicios: Eureka-Client
Función: Registre un servicio al Centro de Registro de Servicios
Centro de registro de servicio: Eureka-Server
Cree un nuevo proyecto SpringBoot: Eureka-Server, y su configuración pom.xml es la siguiente:
<Properies> <Project.Build.SourceEncoding> UTF-8 </project.Build.SourceEncoding> <Project.Reporting.outputEncoding> UTF-8 </project.Reporting.outputEncoding> <java.version> 1.8 </Java.version> </propiedades> <propiences> <Spendency> <MoupRid> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Starter-eureka-Server </arfactid> </pendency> </pendencs> <SpendencyManagement> <PERSEDENDESS> <PERSEDENCY> <MOUMPOUMID> ORG.SPRINGFRAMAWAR <Persion> dalston.sr1 </versión> <proye> pom </pype> <cope> import </cope> </pendency> </dependencias> </dependenceManagement>
Es muy simple implementar la función de un centro de registro de servicios. Solo necesita usar la anotación @enableeurekaserver en la clase de inicio del proyecto EurekaserverApplication.
@Enableeurekaserver @springbootapplication clase pública eurekaserverapplication {public static void main (String [] args) {new SpringApplicationBuuilder (eurekaserverapplication.class) .web (true) .run (args); }}De manera predeterminada, el centro de registro de servicio también intentará registrarse como cliente, por lo que debemos deshabilitar su comportamiento de registro del cliente y simplemente agregar la siguiente información al archivo de configuración de la aplicación.
Spring.Application.Name = eureka-Serverserver.port = 1001eureka.instance.hostName = localhosteureka.client.register-with-eureka = falseeureka.client.fetch-registry = false = false
Inicie EurekaserverApplication, visite http: // localhost: 9001/para ver la página de Eureka. Desde la ubicación de la caja roja, puede ver que no hay una instancia de servicio de tareas registrada en el centro de registro de servicio actual.
Proveedor de servicios: Eureka-Client
Después de registrar cada instancia, se necesita un latido para enviar un latido al centro de registro. Cuando el cliente se registre con el servidor, proporcionará algunos metadatos, como el host y el puerto, la URL, la página de inicio, etc. El servidor Eureka recibe mensajes del corazón de cada instancia del cliente. Si el corazón se desprende, la instancia generalmente se elimina del servidor registrado.
Cree un nuevo proyecto SpringBoot: Eureka-Client, y su configuración pom.xml es la siguiente:
<Properies> <Project.Build.SourceEncoding> UTF-8 </project.Build.SourceEncoding> <Project.Reporting.outputEncoding> UTF-8 </project.Reporting.outputEncoding> <java.version> 1.8 </Java.version> </propiedades> <propiences> <Spendency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependency> </dependency> </dependency> <SpendencyManagement> <Spendency> <Spendency> <MoupRoD> org.springframework.cloud </groupId> <AtifactId> Spring-Cloud-Dependencies </arfactid> <versión> dalston.sr1 </versión> <proy> pom </pype> <appope> import </cope> </pendency> </dependencysmanagency>
También es muy simple implementar un proveedor de servicios. Simplemente use la anotación @enableeurekaclient en la clase Eurekaclient de la clase de inicio del proyecto.
@Enableeurekaclient @springbootapplication clase pública eurekaclientApplication {public static void main (String [] args) {new SpringApplicationBuuder (eurekaclientApplication.class) .web (verdadero) .run (args); }}Configurar lo siguiente en Application.Properties
spring.application.name = eureka-clienterver.port = 9002eureka.client.serviceurl.defaultzone = http: // localhost: 9001/eureka/
A través de la propiedad Spring.Application.Name, podemos especificar el nombre del microservicio cuando lo llame, para que se pueda acceder al servicio.
La propiedad eureka.client.serviceURL.Defaultzone corresponde al contenido de configuración del Centro de registro de servicios y especifica la ubicación del Centro de registro de servicio.
Use la propiedad Server.port para establecer diferentes puertos.
Inicie la clase de aplicación eurekaclient
Actualizar http: // localhost: 9001/, y puede ver que nuestro proveedor de servicios se ha registrado en el centro de registro de servicios
Crear un nuevo DiscoveryController
Use DiscoveryClient.getServices () para obtener el nombre del servicio registrado y use @Value para asignar la información en el archivo de configuración a la IP
@RestControllerPublic Class DiscoveryController {@aUtowired DiscoveryClient DiscoveryClient; @Value ("$ {server.port}") privado cadena ip; @GetMapping ("/client") public string client () {String Services = "Services:"+DiscoveryClient.getServices ()+"IP:"+IP; System.out.println (Servicios); servicios de devolución; }}Visite: http: // localhost: 9002/cliente
Finalmente, permítanme explicar las dos anotaciones @enableeurekaclient y @EnabledScoveryClient
En primer lugar, ambas anotaciones pueden realizar la función del descubrimiento de servicios. Hay muchas implementaciones del servicio de descubrimiento en Spring Cloud (Eureka, Cónsul, Zookeeper, etc.)
@Enableeurekaclient se basa en Spring-Cloud-Netflix. El servicio utiliza Eureka como centro de registro, y los escenarios de uso son relativamente solteros.
@EnabledScoveryClient se basa en Commons Spring-Cloud. El servicio adopta otros centros de registro.
Github: https://github.com/mingyuhub/springcloud
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.