常州做企业网站,北京网站建设类岗位,株洲关键词优化费用,网络营销的营销模式这篇文章主要讲述服务追踪组件zipkin#xff0c;Spring Cloud Sleuth集成了zipkin组件。
一、简介
Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案#xff0c;并且兼容支持了 zipkin#xff0c;你只需要在pom文件中引入相应的依赖即可。
二、服务追踪分…这篇文章主要讲述服务追踪组件zipkinSpring Cloud Sleuth集成了zipkin组件。
一、简介
Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案并且兼容支持了 zipkin你只需要在pom文件中引入相应的依赖即可。
二、服务追踪分析
微服务架构上通过业务来划分服务的通过REST调用对外暴露的一个接口可能需要很多个服务协同才能完成这个接口功能如果链路上任何一个服务出现问题或者网络超时都会形成导致接口调用失败。随着业务的不断扩张服务之间互相调用会越来越复杂。
三、构建工程
基本知识讲解完毕下面我们来实战本文的案例主要有三个工程组成:一个server-zipkin,它的主要作用使用ZipkinServer 的功能收集调用数据并展示一个service-hi,对外暴露hi接口一个service-miya,对外暴露miya接口这两个service可以相互调用并且只有调用了server-zipkin才会收集数据的这就是为什么叫服务追踪了。
3.1 构建server-zipkin 在spring Cloud为F版本的时候已经不需要自己构建Zipkin Server了只需要下载jar即可下载地址
https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
也可以在这里下载
链接: https://pan.baidu.com/s/1w614Z8gJXHtqLUB6dKWOpQ 密码: 26pf
下载完成jar 包之后需要运行jar如下
java -jar zipkin-server-2.10.1-exec.jar访问浏览器localhost:9494
3.2 创建service-zipkin 在其pom引入起步依赖spring-cloud-starter-zipkin代码如下
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.gblfy/groupIdartifactIdsc-f-chapter9/artifactIdversion0.0.1-SNAPSHOT/version/parentgroupIdcom.gblfy/groupIdartifactIdservice-zipkin/artifactIdversion0.0.1-SNAPSHOT/versionnameservice-zipkin/namedescriptionDemo project for Spring Boot/descriptiondependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-zipkin/artifactId/dependency/dependencies
/project在其配置文件application.yml指定zipkin server的地址头通过配置“spring.zipkin.base-url”指定
server:port: 8988
spring:application:name: service-zipkinzipkin:base-url: http://localhost:9411/sender:type: websleuth:sampler:probability: 1
eureka:client:service-url:defaultZone: http://localhost:8761/eureka通过引入spring-cloud-starter-zipkin依赖和设置spring.zipkin.base-url就可以了 启动类作以下修改:
SpringBootApplication
EnableDiscoveryClient
EnableEurekaClient
public class ServiceZipkinApplication {public static void main(String[] args) {SpringApplication.run(ServiceZipkinApplication.class, args);}Beanpublic RestTemplate getRestTemplate(){return new RestTemplate();}Beanpublic Sampler defaultSampler() {return Sampler.ALWAYS_SAMPLE;}
}对外暴露接口
RestController
public class ClientController {private static final Logger LOG Logger.getLogger(ClientController.class.getName());Autowiredprivate RestTemplate restTemplate;RequestMapping(/hi)public String callHome(){LOG.log(Level.INFO, calling trace service-hi );return restTemplate.getForObject(http://localhost:8989/miya, String.class);}RequestMapping(/info)public String info(){LOG.log(Level.INFO, calling trace service-hi );return im service-hi;}
}33 创建service-miya 创建过程痛service-hi引入相同的依赖配置下spring.zipkin.base-url。
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.gblfy/groupIdartifactIdsc-f-chapter9/artifactIdversion0.0.1-SNAPSHOT/version/parentgroupIdcom.gblfy/groupIdartifactIdservice-miya/artifactIdversion0.0.1-SNAPSHOT/versionnameservice-miya/namedescriptionDemo project for Spring Boot/descriptiondependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-zipkin/artifactId/dependency/dependencies/projectserver:port: 8989
spring:zipkin:base-url: http://localhost:9411/sender:type: webapplication:name: service-miya
eureka:client:service-url:defaultZone: http://localhost:8761/eureka
启动类作以下修改:
SpringBootApplication
EnableDiscoveryClient
EnableEurekaClient
public class ServiceMiyaApplication {public static void main(String[] args) {SpringApplication.run(ServiceMiyaApplication.class, args);}Beanpublic RestTemplate getRestTemplate(){return new RestTemplate();}Beanpublic Sampler defaultSampler() {return Sampler.ALWAYS_SAMPLE;}
}对外暴露接口
RestController
public class ClientController {private static final Logger LOG Logger.getLogger(ClientController.class.getName());RequestMapping(/hi)public String home(){LOG.log(Level.INFO, hi is being called);return hi im miya!;}RequestMapping(/miya)public String info(){LOG.log(Level.INFO, info is being called);return restTemplate.getForObject(http://localhost:8988/info,String.class);}Autowiredprivate RestTemplate restTemplate;
}3.4 启动工程演示追踪 依次启动上面的工程打开浏览器访问http://localhost:9411/会出现以下界面 略
访问http://localhost:8989/miya
浏览器出现
i’m service-hi再打开http://localhost:9411/的界面点击Dependencies,可以发现服务的依赖关系 点击find traces,可以看到具体服务相互调用的数据
本文源码下载
https://github.com/gb-heima/springcloud-practical-column/tree/master/sc-f-chapter9