1、修改了maven父工程的配置
1.1 修改了cloud版本
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR4</version>
<type>pom</type>
<scope>runtime</scope>
</dependency>
1.2 加入了spring boot健康检查
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
1.3 加入公共的包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.1.0.RELEASE</version>
<scope>test</scope>
</dependency>
2、修改了config服务中心的配置文件为
server:
port: 8503
spring:
application:
name: chaotic-server
cloud:
consul:
host: localhost
port: 8500
#注册到consul的服务名称
discovery:
serviceName: chaotic-server
management:
endpoint:
shutdown:
enabled: false
endpoints:
web:
exposure:
include: "*"
exclude: env,beans
metrics:
web:
server:
auto-time-requests: false
3、创建zipkin-server
3.1pom.xml为:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.com</groupId>
<artifactId>chaotic</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>cn.com.chaotic</groupId>
<artifactId>chaotic-server</artifactId>
<name>chaotic-server</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-consul-discovery -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-config -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
<version>2.12.3</version>
<!-- <exclusions>
<exclusion>
<artifactId>log4j-slf4j-impl</artifactId>
<groupId>org.apache.logging.log4j</groupId>
</exclusion>
</exclusions> -->
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
<version>2.12.3</version>
</dependency>
</dependencies>
</project>
3.2bootstrap.yml文件为:
spring:
profiles:
active: dev
---
spring:
profiles: prod
cloud:
config:
discovery:
enabled: true
service-id: chaotic-config
name: server-prod #需要从服务注册中心获取到在config上配置的资源
profile: prod #访问的版本
---
spring:
profiles: dev
cloud:
config:
discovery:
enabled: true
service-id: chaotic-config
name: server-dev #需要从服务注册中心获取到在config上配置的资源
profile: dev #本次访问的版本
3.3Application.java为:
package cn.com.chaotic.server;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import zipkin2.server.internal.EnableZipkinServer;
@EnableDiscoveryClient //config client
@EnableZipkinServer //Zipkin日志服务
@SpringBootApplication
public class ServerApp {
public static void main(String[] args) {
SpringApplication.run(ServerApp.class, args);
}
}
4、启动服务
可以看到控制台打印如下:
说明成功的从config获取了资源上的配置信息。
打开浏览器输入:添加链接描述就可以看到如下:
说明zipkin服务创建成功!
5、总结
1、如果zipkin服务启动报错,很多是因为jar包冲突的问题。
2、添加了
metrics:
web:
server:
auto-time-requests: false
防止访问zipkin-ui的时候报错。
3、注意spring cloud和boot版本要统一。
4、遇到问题,最后可以追究源码的可以解决问题的根本。