Ir al contenido principal

Destacado

Spring Cloud Sleuth y StackDriver Trace

Siguiendo con nuestra saga de proyectos de Spring GCP, ahora, nos toca ver Spring Cloud Sleuth.
En proyectos de Arquitectura de Micro servicios es muy importante la información y observabilidad de todo. Si se están realizando llamadas entre servicios A, B y C; es importante entender si estas fueron exitosas o existe latencia entre dichas llamadas.

Nosotros podemos agregar esta dependencia de Sleuth a nuestro proyecto Spring Boot para darle ese "super poder" de tracing distribuido y luego exponer dicha información en un Zipkin o Jaegger por ejemplo.

GCP tiene Stackdriver trace, que es un servicio que nos permite guardar esta data de tracing sin tener que administrar nosotros mismos nuestro Zipking o storage. Stackdriver puede productir reportes de latencia y/o detectar anamalías en la performance.

Existen dos formas de usar Stackdriver Trace en nuestra aplicación Spring Boot:

1. Usas un Stackdriver Trace Zipkin proxy y configurar el Spring Cloud Sleuth para que use este prox…

JoeTip #005 - Trabajar con Jetty y HikariCP en Spring Boot


Jetty

Cuando trabajas con spring boot por defecto si agregas la dependencia web esta viene con el contenedor de servlets tomcat. Si tu quieres trabajar con Jetty debes excluir el tomcat y agregar la dependencia de Jetty:




dependencies {
  // Kotlin Dependencies
  compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
  compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
  testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"

  // Spring Dependencies
  compile("org.springframework.boot:spring-boot-starter-web") {
    exclude module: "spring-boot-starter-tomcat"
  }
  compile "org.springframework.boot:spring-boot-starter-jetty"
  compile "org.springframework.boot:spring-boot-starter-actuator"


HikariCP

HikariCP es un pool de conexiones de JDBC de alta performance. Un pool de conexiones es un cache de conexiones de base de datos de manera que las conexiones puedan ser reutilizadas cuando futuros requests a la base de datos sean requeridos. Los pools de conexiones son utilizados para mejorar la performance de comandos ejecutados en la base de datos.




compile "com.zaxxer:HikariCP:2.6.1"



Luego en el application.properties se debe añadir la siguiente configuración:


spring.datasource.type=com.zaxxer.hikari.HikariDataSource



De manera que si ejecutamos la aplicación veremos en la consola que el cambio fue aceptado:


2017-07-26 07:57:26.345  INFO 1015 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2017-07-26 07:57:26.505  INFO 1015 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.

Enjoy!

Comentarios