Introducción a Eureka
Eureka proporciona servicios basados en REST, que se utilizan principalmente en la gestión de servicios en el clúster. Eureka proporciona componentes del cliente basados en el lenguaje Java, que implementa las funciones de equilibrio de carga, creando condiciones para la implementación del clúster de componentes comerciales. Usando este marco, los componentes comerciales se pueden registrar en contenedores Eureka, que se pueden implementar en grupos, y Eureka mantiene principalmente una lista de estos servicios y verifica automáticamente su estado.
Estructura de programas
Crear servidor Eureka
dependencia de maven
<SpendencyManagement> <Spendencies> <Spendency> <ProupId> org.springframework.cloud </groupId> <artifactID> spring-cloud-dependencies </artifactid> <version> dalston.sr1 </versión> <proy> pom </pom> <cope> import </cope> </pendency> </pendency> </pendency> </type> </type> <cope> import </cope> </pendency> </pendency> </pendency> </type> </type> <cope> import </cope> </pendency> </dependency> <MoupRid> org.springframework.cloud </groupid> <artifactid> spring-ncloud-starter-eureka-server </arfactid> </pendence> </pendencs>
Cambie el puerto de inicio de arranque de primavera en Application.yml
servidor: puerto: 8761
Habilitar anotación de servicio eureka @enableeurekaserver
@Entableeurekaserver@springbootapplicationPublic class ekserverApplication {public static void main (string [] args) {new SpringApplicationBuilder (ekserverapplication.class) .run (args); }}Iniciar Brotingboot
[Thread-11] Oscneserver.eureKaserverBootstrap: contexto del servidor inicializado [principal] sbcettomcatembeddedservletContainer: Tomcat comenzó en puerto (s): 8761 (http) [main] .ScneseureKaAUToServicEregación: actualización de 8761 [Main] cbfirstekserver.erpermarver. EkserverApplication en 8.594 segundos (JVM ejecutándose para 9.523)
Una excepción que no se puede conectar al servidor aparecerá durante el inicio. Esto se debe a que Eureka se trata a sí mismo como un cliente para obtener información de registro al comenzar.
La copia del código es la siguiente:
com.netflix.discovery.shared.transport.transportexception: no se puede ejecutar solicitud en ningún servidor conocido
Agregue la siguiente configuración y no aparecerá nuevamente al comenzar
Eureka: Cliente: RegistroWitheureka: False FetchRegistry: False
Registrowitheureka declara si registrar su propia información en el servidor Eureka, el valor predeterminado es verdadero.
FetchRegistry declara si se arrastra la información de registro en el servidor Eureka, el valor predeterminado es verdadero.
Visite http: // localhost: 8761 en su navegador para ver la descripción de la imagen de la entrada de la consola Eureka
Crear un proveedor de servicios
confiar
<Spendency> <MoupRoMID> org.springframework.cloud </groupid> <artifactid> spring-ncloud-starter-config </artifactid> </pendency> <pendency> <grupoD> org.springframework.cloud </groupid> <artifactid> spring-cloud-starter-eureka </artifactid> </dependency> </dependency> <MoupRoD> org.springframework.cloud </groupid> <artifactID> spring-ncloud-starter-ribbon </artifactid> </pendency>
Configurar el puerto, el nombre de la instancia de Eureka y la dirección de servicio Eureka en Application.yml
servidor: puerto: 8080spring: Aplicación: Nombre: Ek-Providereureka: instancia: Nombre de host: localhost Cliente: ServiceUrl: Defaultzone: http: // localhost: 8761/eureka/
Crear un servicio de descanso
@RestControllerPublic Class HELOCONTROLLER {@RequestMapping ("/Hello") public String Hello (HttpServletRequest solicitud) {return "Hello:" + request.getRequestUl (); }}Habilitar la anotación del cliente eureka @enableeurekaserver
@Entableeurekaclient@springbootapplicationPublic clase ekproviderApplication {public static void main (string [] args) {new SpringAplicationBuilder (ekProviderApplication.class) .run (args); }}Después del inicio, puede ver en la consola Eureka que el proveedor de servicios ha registrado en Eureka
Crea una persona que llama de servicio
confiar
<Spendency> <MoupRoMID> org.springframework.cloud </groupid> <artifactid> spring-ncloud-starter-config </artifactid> </pendency> <pendency> <grupoD> org.springframework.cloud </groupid> <artifactid> spring-cloud-starter-eureka </artifactid> </dependency> </dependency> <MoupRoD> org.springframework.cloud </groupid> <artifactID> spring-ncloud-starter-ribbon </artifactid> </pendency>
Configurar el puerto, el nombre de la instancia de Eureka y la dirección de servicio Eureka en Application.yml
Servidor: Puerto: 9000Spring: Aplicación: Nombre: EK-Invokeeureka: Instancia: Nombre de host: Localhost Client: ServiceUrl: Defaultzone: http: // localhost: 8761/eureka/
Escriba un servicio de descanso para llamar al "Hello" del proveedor de servicios "
@RestController @ConfigurationPublic Class InvokeController {@Bean @LoadBalanced public RestTemplate getRestTemplate () {return new RestTemplate (); } @RequestMapping ("/Invoke") public String Invoke () {RestTemplate RestTemplate = GetRestTemplate (); return ResttEmplate.getForObject ("http: // ek-provider/hello", string.class); }}En el modo tradicional, generalmente usamos httpclient en Apache para llamar al servicio REST. Aquí usamos Spring para proporcionar el componente RestTemplate que llame al servicio REST. RestTemplate en sí no tiene la capacidad de llamar a los servicios distribuidos, pero después de que la anotación @LoadBalanced modifica el bean ResttEmplate, esta instancia de RestTemplate tiene la capacidad de acceder a los servicios distribuidos, gracias a los diversos interceptores proporcionados por Spring.
Habilitar la anotación del cliente eureka @enableeurekaserver
@Entableeurekaclient@springbootapplicationpublic clase ekinVokeApplication {public static void main (string [] args) {new SpringApplicationBuilder (ekinvokeapplication.class) .run (args); }}Después del inicio, puede ver en la consola Eureka que la persona que llama se ha registrado en Eureka
Luego acceda a la interfaz "Invocar" de la persona que llama en el navegador. Regresar de la siguiente manera
Resumir
El servidor Eureka mantiene la última información de registro a través del enlace Heartbeat, que se almacena en la memoria.
Los proveedores de servicios de Eureka conducen principalmente:
Las personas que llaman al servicio de Eureka conducen principalmente:
Dirección del código fuente: https://github.com/xc564864894/springcloud/tree/master/eureka(%E4%B8%80)
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.