项目文件:下载 264KB,可以用于 对比文件 及 目录结构,提前 查看效果,上文传送地址:Zuul 网关 。
Zipkin
一、为什么用链路追踪。
在前面的例子里,我们有三个微服务,分别是 数据服务 和 视图服务 和 网关服务,随着业务的增加,就会有越来越多的微服务存在,他们之间也会有更加复杂的调用关系。
这个调用关系,仅仅通过观察代码,会越来越难以识别,所以就需要通过 zipkin 服务链路追踪服务器 这个东西来进行识别了。
二、链路追踪服务的配置。
2.1 改造。
eureka-server 不需要做改造。
linze-data-service、linze-view-service-feign、zuul-service 需要进行改造以使其可以被追踪到。
2.2 pom.xml。
三个(data、view、zuul)的 pom.xml 中加入 zipkin 的 jar 包。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
2.3 application.yml。
三个(data、view、zuul)的 application.yml 中加入 zipkin 的 配置。
zipkin:
base-url: http://localhost:9411
注:建议将中文去掉,以免出现 application.yml 无法加载的错误。
此处省略一张 zuul 网关 的图,三张一排挤不下呢。
2.4 XxxServiceXxxApplication 启动类。
三个(data、view、zuul)的 XxxServiceXxxApplication.java 中加入 Sampler 抽样策略: ALWAYS_SAMPLE 表示持续抽样。
@Bean
public Sampler defaultSampler() {
return Sampler.ALWAYS_SAMPLE;
}
然后依次启动所有服务。还没完呢,还不能访问的。
2.5 zipkin-server 下载。
1. 下载: zipkin-server-2.12.9-exec.jar 。
2. 运行: java -jar zipkin-server-2.12.9-exec.jar 。
3. 访问: http://localhost:9411 。
案例:
访问一次 http://localhost:8026/api-view/bugs 视图微服务。
访问二次 http://localhost:8026/api-data/bugs 数据微服务。
可以看到以下结果:
上图查询的是 all 的,如果要精确,下图可自行选择服务名称及映射地址,点击链路还可查看详情。
点击 Dependencies 就可以查看已链路服务间的 依存关系。