Breaking

Post Top Ad

Your Ad Spot

viernes, 14 de junio de 2019

Nube de primavera: Turbina

Visión general

En este artículo, le presentaremos la Turbina Netflix de Spring Cloud . Se agrega múltiples Hystrix Metrics corrientes en una sola, por lo que se podría mostrar en una sola vista de panel.
Para dar una pequeña introducción a Hystrix . En una arquitectura de microservicio, tenemos muchas aplicaciones pequeñas que se comunican entre sí para completar una solicitud.
Siempre existe la posibilidad de que uno de estos servicios posteriores no responda correctamente o simplemente falle por completo. Para evitar fallas en cascada, configuramos un mecanismo de retorno de Hystrix para nuestros microservicios.
Cada microservicio que implementa Hystrix puede elegir exponer los flujos de métricas de Hystrix (a través del punto final del actuador /hystrix.stream) que se pueden ver a través del tablero de instrumentos de Hystrix.
Hemos cubierto esto en detalle en Spring Cloud: Hystrix si desea obtener más información.
Turbine es una herramienta de código abierto de Netflix para agregar múltiples flujos en un solo flujo. Spring proporcionó una envoltura agradable a su alrededor para ser utilizada fácilmente en el ecosistema de Spring.

Preparar

La configuración es similar a la configuración de Spring Cloud: Hystrix. Así es como se ve nuestro servicio de back-end:
  • Eureka Server : funciona como un registro de servicios y se ejecuta en el puerto 8761.
  • Servicio de recomendación : un servicio REST simple que tiene un único punto final /recommendationsy se ejecuta en el puerto 8070.
  • Servicio de usuario : un servicio REST simple que tiene un único punto final /personalized/{id}y se ejecuta en el puerto 8060.
  • Hystrix Turbine : un servicio de panel de control de Hystrix para mostrar las transmisiones de Hystrix que se ejecutan en el puerto 9090.
Así es como se ven nuestros servicios en el servidor Eureka :
primavera-nube-turbina-configuración
Tanto el user-servicecomo recommendation-servicehan implementado el mecanismo de retorno de Hystrix y han /hystrix.streamexpuesto el punto final a través del Actuador :
  • Punto extremo Hystrix para servicio de usuario: http://localhost:8060/actuator/hystrix.stream
  • Punto extremo Hystrix para servicio de recomendación: http://localhost:8070/actuator/hystrix.stream
Podemos verificar esto individualmente en nuestro Tablero de control de Hystrix escribiendo la URL en el cuadro y haciendo clic en "Monitor Stream":
tablero-turbina-muelle-nube
Veremos una métrica como esta:
Spring-Cloud-turbine-Dashboard-Single-Stream
Nota : Si no ve ninguna transmisión, es probable que tenga que llegar a los puntos finales del servicio cuya transmisión desea ver. Ej: para user-serviceque tengamos que golpear http://localhost:8060/personalized/1para generar el stream.

Instalacion de turbina

Es posible que te hayas dado cuenta de que mirar el flujo individual no es muy productivo, especialmente cuando tenemos muchos microservicios.
Turbine puede agregar todas estas hystrix.streamindividuales a una sola turbine.stream, que se puede ver en el Tablero de Hystrix.
Utiliza la DiscoveryClientinterfaz para averiguar los servicios relevantes que producen /hystrix.streams.
Para agregar Turbine a su Hystrix Dashboard, agregue la siguiente dependencia:
<dependency>  
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-turbine</artifactId>
</dependency>  
Nota : Esta es una dependencia inicial de la turbina, que de forma predeterminada utiliza Spring Cloud Eureka como el servidor de descubrimiento. Si está utilizando Spring Cloud Consul, use las siguientes dependencias:
<dependency>  
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-netflix-turbine</artifactId>
</dependency>  
<dependency>  
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>  
En este artículo usaremos la dependencia de arranque, es decir spring-cloud-starter-netflix-turbine.
Para habilitar Turbine, simplemente anotamos nuestra clase principal con @EnableTurbine:
@SpringBootApplication
@EnableTurbine
@EnableDiscoveryClient
@EnableHystrixDashboard
public class HystrixTurbineApplication {

    public static void main(String[] args) {
        SpringApplication.run(HystrixTurbineApplication.class, args);
    }
}
Para que Turbine funcione como se espera, debemos agregar algunos detalles a nuestro application.propeties:
server.port= 9090  
spring.application.name= hystirx-turbine  
eureka.client.serviceUrl.defaultZone= http://localhost:8761/eureka/  
turbine.appConfig= user-service,recommendation-service  
turbine.clusterNameExpression= new String("default")  
Aquí, le indicamos a Turbine la ubicación del servidor Eureka, las aplicaciones /hystrix.streamque necesita recuperar y turbine.clusterNameExpressioncomo new String("default"), lo que le da el nombre de clúster "predeterminado".
Podemos abrir http://localhost:9090/turbine.stream?cluster=defaultpara ver el flujo agregado de ambos user-servicerecommendation-service:
primavera-nube-turbina-corriente
Nuevamente, si no está viendo nada, solo presione los puntos finales user-servicerecommendation-servicepara generar las secuencias.
También podemos usar esta URL en nuestro panel de control de Hystrix para generar una vista agregada agradable:
primavera-nube-turbina-flujo-en-tablero
A veces, es posible que desee utilizar los Eureka serviceIdcomo nombres de clúster para su panel de control. Esto se puede hacer usando turbine.aggregator.clusterConfig:
server.port= 9090  
spring.application.name= hystirx-turbine  
eureka.client.serviceUrl.defaultZone= http://localhost:8761/eureka/  
turbine.aggregator.clusterConfig= USER-SERVICE,RECOMMENDATION-SERVICE  
turbine.appConfig= user-service,recommendation-service  
También puede verificar qué clústeres están configurados actualmente en su aplicación de Turbina al llegar al /clusterspunto final.
Este punto final se puede desactivar configurando turbine.endpoints.clusters.enabledfalse.
punto final-nube-turbina-turbina-punto final
Entonces, ahora podemos ver las turbine.streamidentificaciones de Eureka como:http://localhost:9090/turbine.stream?cluster=USER-SERVICE
spring-cloud-turbine-service-id-cluster
Si hay varias instancias de un servicio particular en ejecución, Turbine lo recogerá según el grupo y lo mostrará en el resultado.

Conclusión

En este artículo, hemos cubierto cómo configurar la Turbina en la parte superior de nuestro flujo de Hystrix para obtener una vista agregada. La primera vez que vimos el enfoque clásico de la Turbina de obtener el flujo de Hystrix de todos los servicios .

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas