Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十二):链路追踪(Sleuth、Zipkin)

 

在线演示

演示地址:

编写启动文件

在本地创建如下文件夹结构, data目录用来存放elasticsearch存储的数据

复制代码
dockerfile     |- elasticsearch     |    |- data     |- docker-compose.yml
复制代码

编写docker-compose文件,主要作用是批量启动容器,避免在使用多个容器的时候逐个启动的繁琐。

docker-compose.yml

复制代码
version: "3" services:    elasticsearch:     image:  docker.elastic.co/elasticsearch/elasticsearch:6.3.0     container_name: elasticsearch     restart: always     networks:       - elk     ports:       - "9200:9200"      - "9300:9300"     volumes:        - ../elasticsearch/data:/usr/share/elasticsearch/data    zipkin:     image: openzipkin/zipkin:latest     container_name: zipkin     restart: always     networks:       - elk     ports:       - "9411:9411"     environment:       - STORAGE_TYPE=elasticsearch       - ES_HOSTS=elasticsearch  networks:     elk:
复制代码

关于docker-compose.yml 文件格式及相关内容请自行百度了解。

启动服务

命令模式进入dockerfile目录,执行启动命令如下。

docker-compose up -d

执行过程如下图所示。

执行完成之后,通过 docker ps 命令查看,发现zipkin和elasticsearch确实启动起来了。

到这里,zipkin服务端就搭建起来了,访问 http://localhost:9411,效果如下,因为还没有客户端,所以还没有数据。

注意:

这里我们采用了elasticsearch作为存储方式,如果想简单通过内存方式启动,无须安装elasticsearch,直接启动一个zipkin容器即可。

docker run -d -p 9411:9411 openzipkin/zipkin

如果想使用其他如数据库等方式存储,请查询相关配置文档。

zipkin服务端已经搭建完成了,接下来我们来实现客户端。

添加依赖

修改 kitty-consumer 项目Maven配置,添加zipkin依赖。

pom.xml

复制代码
<dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-starter-zipkin</artifactId></dependency>
复制代码

配置文件

修改配置文件,添加如下zipkin配置。

复制代码
spring:   zipkin:     base-url: http://localhost:9411/  sleuth:     sampler:       probability: 1 #样本采集量,默认为0.1,为了测试这里修改为1,正式环境一般使用默认值。
复制代码

application.yml

复制代码
server:   port: 8005 spring:   application:     name: kitty-consumer   cloud:     consul:       host: localhost       port: 8500       discovery:         serviceName: ${spring.application.name}    # 注册到consul的服务名称   boot: 
                    
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信