Spring Cloud 中整合Zipkin进行服务跟踪

扫码关注公众号:Java 技术驿站

发送:vip
将链接复制到本浏览器,永久解锁本站全部文章

【公众号:Java 技术驿站】 【加作者微信交流技术,拉技术群】
免费领取10G资料包与项目实战视频资料

在这篇文章里介绍如何将Zipkin整合到我们的云服务里。Zipkin是一个开源项目,它提供了在分布式环境下发送、接收、存储和可视化跟踪的机制。这使我们能够对服务之间的活动进行关联,并更清楚地了解我们服务中发生的情况。

这篇文章中的示例工程是基于之前文章的进一步开发,想了解更多情况可阅读。“使用Spring Cloud搭建的微服务示例” “Spring Cloud 微服务的安全保护”

1、Zipkin服务

Zipkin服务将存储我们服务的所有操作步骤,每一步操作都会发送到该服务器用来进行跟踪识别。

1、1创建

新建一个Spring Boot工程,在POM中添加一些依赖

    <dependency>
        <groupId>io.zipkin.java</groupId>
        <artifactId>zipkin-server</artifactId>
    </dependency>
    <dependency>
        <groupId>io.zipkin.java</groupId>
        <artifactId>zipkin-autoconfigure-ui</artifactId>
        <scope>runtime</scope>
    </dependency>

1、2启用

在主应用类里增加@EnableZipkinServer注解,此注解标识这个服务监听所有操作和行为以供查询。

    @SpringBootApplication
    @EnableEurekaClient
    @EnableZipkinServer
    public class ZipkinApplication {
        public static void main(String[] args) {
            SpringApplication.run(ZipkinApplication.class, args);
        }
    }

1、3配置

在工程的src/main/resources目录下新建一个bootstrap.properties文件,添加一些配置项。

    spring.cloud.config.name=zipkin
    spring.cloud.config.discovery.service-id=config
    spring.cloud.config.discovery.enabled=true
    spring.cloud.config.username=configUser
    spring.cloud.config.password=configPassword

    eureka.client.serviceUrl.defaultZone=http://discUser:discPassword@localhost:8082/eureka/

在Git仓库里新增zipkin.properties文件,定义服务名称和端口。

    spring.application.name=zipkin
    server.port=8088

    eureka.client.region = default
    eureka.client.registryFetchIntervalSeconds = 5

    logging.level.org.springframework.web=debug

1、4运行

至此Zipkin服务已经创建完毕,我们可以将服务启动起来验证一下。首先需要启动config、discovery服务,然后再启动zipkin服务。在浏览器里输入http://localhost:8088,能看到Zipkin的首页。
20191123100227\_1.png

2、服务配置

将我们的服务配置为Zipkin Client将操作信息发送到Zipkin Server中。这里我们要修改book和gatew服务。

2、1POM引用

在pom.xml文件里添加spring-cloud-starter-zipkin。

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>

2、2book服务配置

修改配置库里的book-service.properties文件

    spring.zipkin.locator.discovery.enabled=true
    spring.zipkin.baseUrl=http://localhost:8088/
    spring.sleuth.sampler.percentage=1.0
    spring.sleuth.web.skipPattern=(^cleanup.*)

2、3gateway服务配置

    spring.zipkin.locator.discovery.enabled=true
    spring.zipkin.baseUrl=http://localhost:8088/
    spring.sleuth.sampler.percentage=1.0
    spring.sleuth.web.skipPattern=(^cleanup.*|.+favicon.*)

3、运行

将所有服务的启动起来,通过浏览器访问http://localhost:8080/book-service/books
这时在Zipkin控制台http://localhost:8088 就能看到服务运行的样子。一个请求所花费的时间以及这次请求包含了2步各花费的时间。
20191123100227\_2.png

点击进去还能看到详细数据。
20191123100227\_3.png

20191123100227\_4.png

5、总结

我们已经看到了将Zipkin集成到云应用程序中是多么容易。随着我们的应用越来越复杂,Zipkin可以为我们提供关于一个请求所花费时间的详细信息。这可以帮助我们确定程序在哪里减速,并指出我们的应用需要改进的地方。


来源:http://ddrv.cn/a/88268

赞(0) 打赏
版权归原创作者所有,任何形式的转载请联系博主:daming_90:Java 技术驿站 » Spring Cloud 中整合Zipkin进行服务跟踪

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏