Spring Cloud Config 本地配置
本地文件系统
我们可以将微服务的相关配置文件存储到本地文件中,然后让微服务来读取本地配置文件。
创建本地 Config Server
1、创建 Module,pom.xml
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency></dependencies>
2、application.yml
server:port:8762spring:application:name: nativeconfigserverprofiles:active: nativecloud:config:server:native:search-locations: classpath:/shared
3、在 resources 路径下创建 shared 文件夹,并在此路径下创建本地配置文件 configclient-dev.yml
server:port:8070foo: foo version 1
4、创建启动类
packagecom.southwind;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.config.server.EnableConfigServer;@SpringBootApplication@EnableConfigServerpublicclassNativeConfigServerApplication{publicstaticvoidmain(String[] args){SpringApplication.run(NativeConfigServerApplication.class,args);}}
创建客户端读取配置中心的配置文件。
1、创建 Module,pom.xml
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency></dependencies>
2、bootstrap.yml
spring:application:name: configclientprofiles:active: devcloud:config:uri: http://localhost:8762fail-fast:true
3、创建启动类
packagecom.southwind;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassNativeConfigClientApplication{publicstaticvoidmain(String[] args){SpringApplication.run(NativeConfigClientApplication.class,args);}}
4、创建 Handler
packagecom.southwind.controller;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/native")publicclassNativeConfigHandler{@Value("${server.port}")privateString port;@Value("${foo}")privateString foo;@GetMapping("/index")publicStringindex(){returnthis.port+"-"+this.foo;}}
打开浏览器访问 http://localhost:8070/native/index
Spring Cloud 服务跟踪
Zipkin 实现服务跟踪
什么是 Zipkin
1、Zipkin Server
2、Zipkin Client
Spring Cloud Sleuth 集成了 Zipkin
创建 Zipkin Server
1、创建 Module,pom.xml
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>io.zipkin.java</groupId><artifactId>zipkin-server</artifactId><version>2.9.4</version></dependency><dependency><groupId>io.zipkin.java</groupId><artifactId>zipkin-autoconfigure-ui</artifactId><version>2.9.4</version></dependency></dependencies>
2、application.yml
server:port:9090
3、创建启动类
packagecom.southwind;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importzipkin.server.internal.EnableZipkinServer;@SpringBootApplication@EnableZipkinServerpublicclassZipkinApplication{publicstaticvoidmain(String[] args){SpringApplication.run(ZipkinApplication.class,args);}}
创建 Zipkin Client
1、创建 Module,pom.xml
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId></dependency></dependencies>
2、application.yml
port:8090spring:application:name: zipkinclientsleuth:web:client:enabled:truesampler:probability:1.0zipkin:base-url: http://localhost:9090/eureka:client:service-url:defaultZone: http://localhost:8761/eureka/
3、创建启动类
packagecom.southwind;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassZipkinClientApplication{publicstaticvoidmain(String[] args){SpringApplication.run(ZipkinClientApplication.class,args);}}
4、创建 Handler
packagecom.southwind.controller;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/zipkin")publicclassZipkinHandler{@Value("${server.port}")privateString port;@GetMapping("/index")publicStringindex(){returnthis.port;}}
依次启动注册中心、Zipkin Server、Zipkin Client
访问 http://localhost:9090/zipkin/