越王勾践剑,Spring Cloud微效劳之 sleuth+zipkin日志聚合,平板支撑

频道:今日头条 日期: 浏览:274

1.简介

(1)什么是效力追寻 Sleuth

在微效力架构中,要完结一个功用,经过Rest恳求效力API调用效力来完结,整个调用进程或许会聚合多个后台效力器协同完结。在整个链路上,任何一处调用超时

或犯错都有或许形成前端恳求失利。这时盯梢记载这些恳求的调用的状况就要杂乱的多,这就需求一个专门的东西来处理,spring cloud sleuth组件便是用于盯梢记载的东西

Sleuth就相当于为微效力架构引入了一套记载系统,包括两部分,一个是 trace ID;另一个是 span ID,随时记载一个恳求的每一步操作。

(2)什么是日志聚合 Zipkin

假如想学习Java工程化、高性能及分布式、浅显易懂。微效力、Spring,越王勾践剑,Spring Cloud微效力之 sleuth+zipkin日志聚合,平板支撑MyBatis,Netty源码剖析的络组词朋友能够加我的Java高档沟通:787707172,群里有阿里大牛直播解说技能,以及Java大型互联网技能的视频免费共享给我们。

zipkin 是 Dpper的开源完结,支撑多种语言。Sleuth现已将每个恳求从开端调用到完结的每一步都进行了记载,可是这些log信息会很涣散,运用起来不太便利,就

需求有一个东西能够将这些信息进行收集和汇总,而且显现可视化的成果,便于剖析和定位。这就需求创立一个 Zipkin Server用于收集和展现这些调用链路的信息,他

的运用也很便利。

2.怎么运用

本例需求创立三个工程:

product-sevice 一般客户端工程,供给一个rest接口(项目创立参阅第三节)

order-service 一般客户端工程,用于调杨立新的儿子杨玏用product-service效力(项目创立参阅第三节)

zipkin-service 日志效力工程,用于追寻记载恳求链路。

第一步:创立 zipkin-service,作为Zipkin Server。

工程目录如图:

(1)首先在 pom.xml中添加依靠


io.zipkin.java
zipkin-autoconfigure-ui
runtime


io.zipkin.java
zipkin-server

(2)在发动类添加@EnableZipkinServer注解,用来敞开Zipkin Server的功用。

package com.hole;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import zipkin.server.EnableZipkinServer;

@EnableDiscoveryClient
@EnableZipkinServer
@SpringBootApplication
public class ZipkinServiceApplication {
private static Logger logger = LoggerFactory.getLogger(ZipkinServiceApplication.class);

public static void main(String[] args) {
SpringApplication.run(ZipkinServiceApplication.class, args);
}
}

(暴君的逃婚皇后3)application.properties装备如下:

sp越王勾践剑,Spring Cloud微效力之 sleuth+zipkin日志聚合,平板支撑ring.application.name=zipkin-service
server.port=9411
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka国产好片/

(4)发动 Zipkin Server,拜访 http://localhost:9411/,此刻由于还没有效力恳求相关的zipkin server,所以效力名里列表里是空的,如图:越王勾践剑,Spring Cloud微效力之 sleuth+zipkin日志聚合,平板支撑

假如想学习Java工程化、高性能及分布式、浅显易懂。微效力、Spring,MyBatis,Netty源码剖析的朋友能够加我的Java高档沟通:787707172,群里有阿里大牛直播解说技能,以及Java大型互联网技能的视频免费共享给我们。

第二步:创立日志客户端工程

想要在界面上能看到zipkin server收集的日志信息及依靠联系,需求在每个工程中添加sleuth与zipkin的依靠,然后添加注册地址,指向到 zipkin server上就能够了。

1.(1)创立product-service工程,并添加依靠。


org.springframework.cloud
spring-cloud-starter-sleuth
大连六本木

越王勾践剑,Spring Cloud微效力之 sleuth+zipkin日志聚合,平板支撑
org.springframework.cloud
spring-cloud-sleuth-zipkin

(2)application.properties装备添加装备,指向 zipkin server效力地址。

spring李玮婷.zipkin.base-url=http://localhost:9411/

(3)发动类代码添加 /hello 接口,并在接口进口处做一个日志打印,代码如下

package com.hole;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryC皇七子永琮lient;
import org.springframework.http.HttpStatus;
import org.smoorgenpringframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.b老友同居ind.annotation.RestController;

@EnableDiscoveryClient
@SpringBootApplication
@RestController
public class ProductServiceApplication {
private static Logger logger = LoggerFactory.getLogger(ProductServiceApplication.class);

public static void main(String[] args) {
SpringApplication.run(ProductServiceAp零纪阁plication.class, args)越王勾践剑,Spring Cloud微效力之 sleuth+zipkin日志聚合,平板支撑;
}

@RequestMapp越王勾践剑,Spring Cloud微效力之 sleuth+zipkin日志聚合,平板支撑ing(value = "/hello",method = RequestMethod.GET)
public ResponseEntity hello(){
logger.info("called by product-service");
return new ResponseEntity("hello product service!", HttpStatus.OK);
}
}

2.(1)创立order-service工程。

依靠和装备同 product-sevice。

(2)发动类添加 /product/hello接口,意图是调集 product-service接口。在接口进口方位做一个日志打印。

package com.hole;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframewor重庆18680好k.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
imp越王勾践剑,Spring Cloud微效力之 sleuth+zipkin日志聚合,平板支撑ort org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import秦小兰 org.springframework.web.client.RestTemplate;

@EnableDiscoveryClient
@SpringBootApplication
@RestController
public class OrderServiceApplication {
private static Logger logger = LoggerFactory.getLogger(OrderServiceApplication.class);

@Bean
@LoadBalanced
RestTemplate restTemplate(){
return new RestTemplate();
}

@Autowired
RestTemplate restTemplate;

public static void main(String[] args) {
SpringApplication.run(OrderServiceApplication.class, args);
}

@RequestMapping(value = "/hello",method = RequestMethod.GET)
public ResponseEntity hello(){
return new ResponseEntity("hello order service!", HttpStat深入敌后的奔跑us.OK);
}

@RequestMapping(value = "/product/hello",method = RequestMethod.GET)
public String productHello(){
logger.info("order-serv陈尔敏李镇旭ice calling product-service!");
return restTemplate.getForEntity("http://PRODUCT性的故事-闲王的盲妃SERVICE/hello",String.class).g泡良网etBody();
}
}

第三步:发动项目并验证。

(1)发动悉数项目,发动成功后在监控页面检查成果。

(2)拜访 order-service 效力的 /product/hello接口,成果拜访成功。能够多改写几回

(3)拜访 zipkin server(9411端口),检查日志效力列表,发现service name下拉框已有下拉选项,验证成功。

点击 Find Traces 检查成果能够看到它的完好链路条,点击链条能够看到调用链条,点击 Dependencies能够检查依靠联系,等等,自行发觉吧,就不上图了。

欢迎作业一到八年的Java工程师朋友们参加Java高档沟通:787707172

本群供给免费的学习辅导 架构材料 以及免费的回答

不懂得问题都能够在本群提出来 之后还会有直播渠道和豆儿欢动系列讲师直接沟通噢