Se puede decir que la gobernanza de servicios es el módulo más básico y básico en la arquitectura de microservicio. Se utiliza principalmente para realizar el registro automático y el descubrimiento de varias instancias de microservicios.
Spring Cloud Eureka es parte de Spring Cloud Netflix Microservices Suite, que es el principal responsable de completar las funciones de gobernanza de servicios en la arquitectura de microservicio.
Este artículo utiliza pequeños ejemplos simples para compartir cómo administrar el servicio a través de Eureka:
============== Soy la hermosa línea divisoria ===================================
1. Cree un centro de registro de servicio
Primera lista de la estructura completa del directorio:
El proceso de construcción es el siguiente:
1. Cree un proyecto Maven: Eureka (implementación específica omitida)
2. Modifique el archivo POM e introduce dependencias
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <modelVersion> 4.0.0 </modelversion> <MoupRupid> com.sam </groupid> <artifactid> eureka </artifactid> <lection> 0.0.1-snapshot </ledlet> <entrement> <MoupRoD> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </artifactid> <verserse> 1.5.1.release </verversion> </parent> <properties> <javaversion> 1.8 </javaversion> </propiedades> <!-Use dependencia de la gestión de la versión-> <javaversion> </javaversion> </propiedades> <!-Use dependencia de la gestión de la versión-> <javaversion> </javaversion> </propiedades> <!-Use la gestión de la dependencia de la versión) <MoupRid> org.springframework.cloud </groupid> <artifactID> spring-ncloud-dependencies </artifactid> <version> camden.sr6 </verversion> <proy> pom </type> <cope> import </cope> </dependency> </pendency> </pendencysManement> <Spendencias> <!-Introducción de Eureka-<verpendencias-<verpendencias-<verenciales> <MoupRid> org.springframework.cloud </groupid> <artifactid> spring-ncloud-starter-eureka-server </arfactid> </pepertency> </pendency> </pendencs> </jection>
3. Cree una clase de inicio
/** * * * @enableeurekaserver * El centro de registro de servicios utilizado para especificar que el proyecto es eureka */@enseableeurekaserver@springbootapplicationpublic class eurekaApp {public static void main (string []) {springapplication.run (eurekaApp.class, args); }} 4. Configure el archivo Application.Properties
#Set the tomcat service port number server.port=1111#Set the service name spring.application.name=eureka-serviceeureka.instance.hostname=localhost#Register center does not need to register itself eureka.client.register-with-eureka=false#Register center does not need to discover the service eureka.client.fetch-registry=false#Set the URL of the service registration center Leureka.client.serviceurl.defaultzone = http: // $ {eureka.instance.hostname}: $ {server.port}/eureka 5. Comience el servicio y acceda a él, y veremos una imagen como esta:
2. Registre un proveedor de servicios
Primera lista de la estructura completa del directorio:
El proceso de construcción es el siguiente:
1. Cree un proyecto Maven: Hello-Service (implementación específica omitida)
2. Modifique el archivo POM e introduce dependencias
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <modelVersion> 4.0.0 </modelversion> <MoupRoMid> com.sam </groupid> <artifactid> hola-service </artifactid> <lection> 0.0.1-snapshot </lansione> <-parent>> <MoupRoD> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </artifactid> <verserse> 1.5.1.release </versión> </parent> <properies> <javaversion> 1.8 </javaversión> </propiedades> <defferencyManemage> <pendences> <ppersion> <MoupRid> org.springframework.cloud </groupid> <artifactid> spring-ncloud-dependencies </artifactid> <version> camden.sr6 </versión> <proye> pom </type> <cope> import </cope> </dependency> </dependencia> </pendencysManement> <Spendencias> <!-INSTRUCTOCURACIÓN DE EURA-<CLIENDENTES DEFEDENCESS> <) <MoupRid> org.springframework.cloud </groupid> <artifactid> spring-ncloud-starter-eureka </arfactid> </pendency> </dependency> </dependencias> </proyecto>
3. Cree una clase de inicio
/***** @EnabledScoveryClient* Deje que el servicio use el servidor Eureka* para implementar el registro y el descubrimiento del servicio**/@habilitados en la clase }}
4. Crea un controlador
@RestControllerPublic Class Hellocontroller {logger logger = loggerFactory.getLogger (hellocontroller.class); @Autowired DiscoveryClient DiscoveryClient; @RequestMapping ("/Hello") Public String Hello () {ServiceInstance instance = DiscoveryClient.GetLocalServiceInstance (); // Imprimir ID de servicio Logger.info ("*********" + instancia.getServiceId ()); regresar "Hola, este es Hello-Service"; }} 5. Configure el archivo Application.Properties
server.port = 9090#Establezca el nombre del servicio Spring.Application.Name = Hello-Service#Establezca la URL del Centro de registro del servicio. Este servicio debe registrarse en el Centro de registro de servicios eureka.client.serviceurl.defaultzone = http: // localhost: 1111/eureka
6. Comienza y prueba
1.) Después de comenzar, la consola de hello-servicio tendrá esta palabra (xxx representa el nombre de su PC)
Copie el código de la siguiente manera: Instancia registrada Hello-Service/xxx: Hello-Service: 9090 con State Up (replication = False)
Las siguientes palabras se imprimirán en la consola Eureka (xxx representa el nombre de su PC)
Copie el código de la siguiente manera: Instancia registrada Hello-Service/xxx: Hello-Service: 9090 con State Up (replication = False)
2.) Visite localhost: 1111 nuevamente y encontrará que hay servicios registrados en el centro de registro
3. Descubrimiento y consumo de servicios
La estructura completa del directorio es la siguiente:
Proceso de construcción:
1. Cree un proyecto Maven (implementación específica omitida)
2. Modifique el archivo POM e introduce dependencias
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <modelVersion> 4.0.0 </modelversion> <MoupRoD> com.sam </groupid> <artifactid> hello-conconsumer </artifactid> <lision> <MoupRoD> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </artifactid> <verserse> 1.5.1.release </versión> </parent> <properies> <javaversion> 1.8 </javaversión> </propiedades> <defferencyManemage> <pendences> <ppersion> <MoupRid> org.springframework.cloud </groupid> <artifactid> spring-ncloud-dependencies </artifactid> <version> camden.sr6 </versevers> <proy> pom </type> <cope> import </cope> </dependency> </dependency> </dependency ganagement> <pendencies> <!-introducir eureka cliente-<play de dependencias> <MoupRoD> org.springframework.cloud </groupid> <artifactid> spring-ncloud-starter-eureka </artifactid> </pendence> <!-Introducir la dependencia de la cinta se utiliza para lograr el equilibrio de carga. Solo lo estamos usando aquí, por lo que no lo introduciremos en otro lugar-> <pendency> <MoupRupid> org.springframework.cloud </groupid> <artifactid> spring-ncloud-starter-ribbon </artifactid> </pendency> </dependencias> </proyecto>
Hay más dependencias de la cinta que los proveedores de servicios de saludo aquí
3. Cree una clase de inicio
@Habilitados en el método se aplica en el método y se utiliza para establecer el valor de retorno del método para ser bean @bean @loadbalanced //@loadbalanced para lograr la carga de equilibrio de carga RESTTEMPLACE RESTTEMPLATE () {return New RestTeMplate (); } public static void main (string [] args) {springapplication.run (consumo de consumo.class, args); }}@EnabledScoveryClient también debe usarse aquí para permitir que el servicio use el servidor Eureka para realizar el registro y el descubrimiento del servicio
4. Crea un controlador
@RestControllerPublic Class ConsumerController {// The RestTemplate inyectado aquí hay una instancia configurada a través de @Bean en com.sam.consumerApp @aUtowired RestTemplate RestTemplate; @RequestMapping ("/Hello-Consumer") public String Helloconsumer () {// llamando al servicio Hello-Service, tenga en cuenta que el nombre del servicio se usa aquí, no el IP+puerto RESTTemplate.getForObject ("http: // Hello-Service/Hello", String.class); regrese "¡Hola acabado del consumidor!"; }}5. Configure el archivo Application.Properties
servidor.port = 9999spring.application.name = hello-consuMereureka.client.serviceurl.defaultzone = http: // localhost: 1111/eureka#El proyecto de configuración aquí es lo mismo que el proveedor de servicios hello-service
6. Comience, prueba 1.) Inicie Eureka. Para mostrar el efecto de ser responsable del equilibrio, nuestro servicio de saludo comienza dos servicios. Los pasos específicos para iniciar dos servicios son los siguientes
Lo anterior es el paso de inicio de Hello-Service1, con el puerto número 9090; El mismo método se establece en Hello-Service2, con el número de puerto 9091 (se omite la implementación específica).
2.) Comience Hello-Consumer
3.) Visite http: // localhost: 1111/nuevamente y encontrará que hay 2 servicios de hello-servicio (los números de puerto son 9090 y 9091) y 1 servicio de hello-consumo
4.) Después de visitar http: // localhost: 9999/hello-consumer varias veces, encontrará que Hello-Service1 y Hello-Service2 se llamarán a su vez (el Balance se ha logrado), y puede confirmar el contenido a través de la consola de ambos (recuerde que tenemos un LoggerLogger. Sí, esta es la impresión)
4. Resumen
Los ejemplos anteriores se dan cuenta de la gobernanza del servicio básico:
PD: Permítanme explicar aquí que el IDE que uso es Spring Tool Suite, que es la versión personalizada de Spring Eclipse, que es conveniente para que usemos Spring para el desarrollo. Los amigos interesados pueden aprender al respecto en Baidu.
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.