在线演示
编写启动文件
在本地创建如下文件夹结构, 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:

