工作原因主要研究了下dubbo框架和相关生态,选取的是dubbo+nacos(注册和配置中心)+zipKin的搭配方式。dubbo和nacos不必多说,都想详细的开发文档和中文社区的支持,按着文档走就行。但zipKin相关的资料就少了很多,主要看的官网github上的文档。百度出来的示例,多是以xml配置的方式呈现的,因为公司统一框架都是采用springboot,也不像xml和注解混用的方式来实现,所以用纯注解的方式来集成了zipKin,这个过程也的确踩了很多坑:
zipKin安装
个没啥好说的,github上的文档很详细了,安装流程也足够简单,只是建议使用阿里云仓库来下载安装jar包,官网的的确慢得抠脚。地址:https://maven.aliyun.com/mvn/search 搜索zipkin-server,选择exec.jar后缀的下载
启动方式
jar包路径下执行:
java -jar zipkin-server-x.xx.x(版本号,本例选择版本为2.21.4)-exec.jar
服务启动后默认可以通过9411端口访问zipkin的监控页面
此启动方式采用默认的In-Memory方式存储,无法持久化。线上环境需搭配MySql或Cassandra或Elasticsearch进行持久化,还可加入mq增加吞吐量
pom依赖
brave 是zipKin的java版本 注意引入brave-instrumentation-dubbo-rpc 这是zipKin对dubbo的支持包
<dependencies>
<!-- Spring Boot dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>${revision}</version>
</dependency>
<!-- Dubbo Registry Nacos -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>${nacos.version}</version>
</dependency