首先,我的SpringCloud 架构,是基于springBoot2.x 版本。
查看官网:https://zipkin.io/pages/quickstart.html 。了解到:
关于 Zipkin 的服务端,在使用 Spring Boot 2.x 版本后,官方就不推荐自行定制编译了,反而是直接提供了编译好的 jar 包来给我们使用,详情请看 upgrade to Spring Boot 2.0 NoClassDefFoundError UndertowEmbeddedServletContainerFactory · Issue #1962 · openzipkin/zipkin · GitHub
并且以前的 @EnableZipkinServer
也已经被打上了 @Deprecated
If you decide to make a custom server, you accept responsibility for troubleshooting your build or configuration problems, even if such problems are a reaction to a change made by the OpenZipkin maintainers. In other words, custom servers are possible, but not supported.
EnableZipkinServer.javagithub.com/openzipkin/zipkin/blob/master/zipkin-server/src/main/java/zipkin/server/EnableZipkinServer.java
简而言之就是:私自改包,后果自负。
所以官方提供了一键脚本
直接docker 安装参考:
【docker系列】Docker 安装并运行 zipkin容器,连接到rabbitMq
自定义创建 zipkin Docker 版本如下:
首先,需要一个 centos7 的基础镜像,用于构建 自定义 zipkin 镜像。废话不多说,直接上代码
1、拉取 基础镜像
docker pull centos
2、运行 基础镜像容器
docker run -id \
--privileged=true \
--restart=always \
--name=mys-zipkin-server \
--hostname=keda_zipkin \
-p 19411:9411 \
-d centos
3、进入 容器
docker exec -it mys-zipkin-server bash
4、安装 zipkin jar包
curl -sSL https://zipkin.io/quickstart.sh | bash -s
5、 安装 JDK 8 (用于 运行 jar 包)
yum install -y java-1.8.0-openjdk.x86_64
6、 不要急于 运行 zipkin.jar
在运行jar包之前。 我们需要 配置 rabbitmq 和 mysql,可参考我之前写的文章
【SpringCloud分布式框架搭建】--Centos7服务器环境搭建-------docker 安装 RibbitMq
【SpringCloud分布式框架搭建】--Centos7服务器环境搭建-------docker 安装mysql8 数据库 主从搭建
还需要 下载 zipkin 版本对应的 mysql建表语句,并创建对应的 库表:
文件:【zipkin-mysql.sql】
当以上都准备好了之后,再执行 jar包
java -jar zipkin.jar \
> --zipkin.collector.rabbitmq.addresses=172.17.0.2:5672 \
> --zipkin.collector.rabbitmq.username=admin \
> --zipkin.collector.rabbitmq.password=123456 \
> --zipkin.collector.rabbitmq.virtual-host=rabbitmq_vhost \
> --STORAGE_TYPE=mysql \
> --MYSQL_DB=my_zipkin \
> --MYSQL_HOST=172.17.0.6 \
> --MYSQL_TCP_PORT=3306 \
> --MYSQL_USER=root \
> --MYSQL_PASS=my123456
说明:
以上的 ip 地址,为docker 容器内的Ip 地址。 因为我的所有服务,都是基于一台计算器创建的,所以只能通过 docker 容器内的ip,才能相互访问