自学内容网 自学内容网

SpringCloud config native 配置

SpringCloud config native 配置

1.概述

最近项目使用springCloud 框架,使用config搭建git作为配置中心。

在私有化部署中,出现很多比较麻烦的和鸡肋的设计。

每次部署都需要安装gitlab

有些环境安装完gitlab,外面不能访问,不给开端口

实时同步比较麻烦

基于上述问题,决定将配置中心依springCloud config本地文件的方式进行改造

缺点就是每个服务器上都可以放配置文件

2、springCloud config配置方式

config配置方式有三种,本文主要介绍本地文件方式

git方式

svn方式

本地文件方式

3、部署架构

springcloud config的流程架构

need-to-insert-img

4、环境搭建

springcloud config分为eureka服务,config服务器端和config客户端

1、eureka服务端搭建

1、pom.xml

org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtest<!-- Eureka-Server 依赖 -->org.springframework.cloudspring-cloud-starter-netflix-eureka-server<!-- SpringCloud 版本控制依赖 springboot版本需要匹配cloud版本

            这里用的boot版本2.3.2.RELEASE -->org.springframework.cloudspring-cloud-dependenciesHoxton.SR12pomimport

2、aplication.yml

server:port:8761eureka:instance:hostname:127.0.0.1#eureka服务端的实例名称2client:register-with-eureka:false#false表示不向注册中心注册自己。fetch-registry:false#false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务service-url:defaultZone:http://127.0.0.1:8761/eureka/

3、启动类

packagecom.feng;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication@EnableEurekaServerpublicclassSpringCloud13EurekaApplication{publicstaticvoidmain(String[] args){        SpringApplication.run(SpringCloud13EurekaApplication.class, args);    }}

4、启动测试

访问地址:http://127.0.0.1:8761/

need-to-insert-img

2、config服务端搭建

1、pom.xml

org.springframework.bootspring-boot-starter-web<!-- Eureka client -->org.springframework.cloudspring-cloud-starter-netflix-eureka-clientorg.springframework.cloudspring-cloud-config-server<!--Spring Boot Actuator,感应服务端变化-->org.springframework.bootspring-boot-starter-actuator<!-- SpringCloud 版本控制依赖 -->org.springframework.cloudspring-cloud-dependencies${spring-cloud.version}pomimport

2、application

server:port:8888spring:profiles:active:native#设置为本地configapplication:name:springcloud-configcloud:config:server:native:search-locations:d:/config-repo#本地配置的路径#        git:#          uri: http://222.175.101.224:8090/liuyusong/springcloud-config.git#          search-paths: /config-repoeureka:client:service-url.defaultZone:http://127.0.0.1:8761/eureka/instance:prefer-ip-address:true

3、启动类

packagecom.feng;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.config.server.EnableConfigServer;importorg.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication@EnableEurekaClient@EnableConfigServerpublicclassSpringCloud14ConfigServerApplication{publicstaticvoidmain(String[] args){        SpringApplication.run(SpringCloud14ConfigServerApplication.class, args);    }}

4、测试服务器端

浏览器访问 http://localhost:8888/springcloud-config/config-base-local.yml

浏览器访问个 server端口/应用名字/文件名-环境名.yml

3、config客户端搭建并测试

1、pom.xml

org.springframework.bootspring-boot-starter-web<!-- Eureka client -->org.springframework.cloudspring-cloud-starter-netflix-eureka-clientorg.springframework.cloudspring-cloud-config-client<!--Spring Boot Actuator,感应服务端变化-->org.springframework.bootspring-boot-starter-actuator<!-- SpringCloud 版本控制依赖 -->org.springframework.cloudspring-cloud-dependencies${spring-cloud.version}pomimport

2、application

server:

  port: 8889

spring:

  application:

    name: springcloud-15-config-client

3、bootstrap

spring:cloud:config:discovery:enabled:trueservice-id:springcloud-13-config-server#eureka的servicename:config-test#      name: config-test,config-test1 可以配置多个配置eureka:client:service-url.defaultZone:http://127.0.0.1:8761/eureka/instance:prefer-ip-address:true

4、启动类

packagecom.feng;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication@EnableDiscoveryClientpublicclassSpringCloud15ConfigClientApplication{publicstaticvoidmain(String[] args){        SpringApplication.run(SpringCloud15ConfigClientApplication.class, args);    }}

5、测试类

packagecom.feng.controller;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;@RestControllerpublicclassTestController{@Value("${myconfig.name}")String name;@Value("${myconfig.version}")String version;@GetMapping("/hello")publicStringhello(){return"ok1"+name+version;    }}

6、测试客户端

测试地址:http://localhost:8889/hello

need-to-insert-img

5、总结

springcloud config 本地化配置的优点是不需要另外搭建gitlab或者svn,部署相对简单

缺点是 如果有多个server端需要手动同步文件,每一个服务器都需要有文件

6、源码地址

最后编辑于:2024-09-18 20:51:51


喜欢的朋友记得点赞、收藏、关注哦!!!


原文地址:https://blog.csdn.net/rita_0567/article/details/142367542

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!