introducción
Cuando la resolución del sistema, un extremo delantero de la solicitud de llamada de enlace se hace más largo, que denomina una pluralidad de diferentes servicios de back-end. Cuando una petición para reducir la velocidad o no está disponible, a fin de facilitar los problemas de posicionamiento, por lo que no distribuido vínculo de seguimiento.
Seguimiento de vínculos distribuidos aumentos en el traceid petición y spanId, un enlace que contiene más de un traceid spanId
como una solicitud de llamada al sistema para front-end, llamar de nuevo y el sistema de inventario del sistema orden.
El sistema registra el orden siguiente (ya que este no es el formato por defecto, el siguiente formato se puede configurar, el formato por defecto se mencionará más adelante)
[INFO][traceId=aaa][SpanId=123]
registro del sistema de inventario es el siguiente
[INFO][traceId=aaa][SpanId=456]
Traceid una solicitud de enlace, el mismo valor en diferentes sistemas, una pluralidad spanId, los valores son diferentes en distintos sistemas.
seguimiento de vínculos distribuidos tiene mucho que lograr, aquí brevemente e integración de Zipkin
github dirección: https: //github.com/erlieStar/spring-cloud-learning
Integración con Zipkin
La creación de Zipkin de servicio
Después de la versión 2.x de inicio de la primavera, el funcionario no se recomienda la compilación, sino proporcionar el paquete frasco compilado para nuestro uso, puede ser descargado directamente empezar
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
Después de iniciar en http: // localhost: 9411 / Zipkin
Creación de Servicios al Consumidor
Proyecto ejemplo: consumidor-Zipkin (primavera-nube-sleuth)
1. Configuración del proyecto es el siguiente
pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
application.yaml
server:
port: 8080
spring:
zipkin:
base-url: http://localhost:9411
application:
name: consumer-zipkin
sleuth:
sampler:
probability: 1.0 # 采样比例,1.0表示全部采集
2. Inicio de clases son las siguientes
@Slf4j
@RestController
@SpringBootApplication
public class ConsumerZipkin {
public static void main(String[] args) {
SpringApplication.run(ConsumerZipkin.class);
}
@Autowired
private RestTemplate restTemplate;
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
@GetMapping("hello")
public String hello() {
log.info("start invoke");
return restTemplate.getForObject("http://localhost:8090/hello", String.class);
}
}
La creación de servicios al productor
Proyecto ejemplo: productor-Zipkin (primavera-nube-sleuth)
1. Configuración del proyecto es el siguiente
pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
application.yaml
server:
port: 8090
spring:
zipkin:
base-url: http://localhost:9411
application:
name: producer-zipkin
sleuth:
sampler:
probability: 1.0 # 采样比例,1.0表示全部采集
2. Inicio de clases son las siguientes
@Slf4j
@RestController
@SpringBootApplication
public class ProducerZipkin {
public static void main(String[] args) {
SpringApplication.run(ProducerZipkin.class);
}
@RequestMapping("hello")
public String hello() {
log.info("new request");
return "hi zipkin";
}
}
vocación comenzó
访问 http: // localhost: 8080 / hola
Zipkin analizar la relación entre la llamada de la siguiente
registro de impresión al consumidor zikpin es el siguiente
INFO [consumer-zipkin,53836e18c9552b3f,53836e18c9552b3f,true] 6664 --- [nio-8080-exec-1] com.javashitang.ConsumerZipkin : start invoke
Impresión de registro como productor-Zipkin
INFO [producer-zipkin,53836e18c9552b3f,6eefb28892009df6,true] 20832 --- [nio-8090-exec-1] com.javashitang.ProducerZipkin : new request
Analizar formato de registro
[consumer-zipkin,53836e18c9552b3f,53836e18c9552b3f,true]
El primer valor: nombre de la aplicación
segundo valor: traceid
tercer valor: spanId
cuarto valor: si desea recopilar salidas de los servicios de información y similares para mostrar Zipkin
Introduzca traceid, analizar el siguiente enlace de llamada