一、简介
当要将配置中心部署到生产环境中时,与服务注册中心一样,我们也希望它是一个高可用的应用。Spring Cloud Config实现服务端的高可用非常简单,主要有以下两种方式。
传统模式:不需要为这些服务端做任何额外的配置,只需要遵守一个配置规则,将所有的Config Server都指向同一个Git仓库,这样所有的配置内容就通过统一的共享文件系统来维护。而客户端在指定Config Server位置时,只需要配置Config Server上层的负载均衡设备地址即可, 就如下图所示的结构。
服务模式:除了上面这种传统的实现模式之外,我们也可以将Config Server作为一个普通的微服务应用,纳入Eureka的服务治理体系中。这样我们的微服务应用就可以通过配置中心的服务名来获取配置信息,这种方式比起传统的实现模式来说更加有利于维护,因为对于服务端的负载均衡配置和客户端的配置中心指定都通过服务治理机制一并解决了,既实现了高可用,也实现了自维护。由于这部分的实现需要客户端的配合,具体示例读者可详细阅读 “客户端详解 ”一节中的 “服务化配置中心” 小节。
二、前期准备
一个服务注册中心,EUREKASERVER,端口为5555;
三、改造Config-Server
(1)pom.xml,添加spring-cloud-starter-eureka依赖
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
(2)application.yml,配置参数eureka.client.serviceUrl.defaultZone以指定服务注册中心的位置
server: port: 5588 spring: application: name: config-server eureka: client: serviceUrl: defaultZone: http://localhost:5555/eureka/ #配置服务注册中心 cloud: config: server: git: uri: https://gitee.com/smartdt/springcloudconfig.git #配置Git仓库位置。 searchPaths: config-repo #配置仓库路径下的相对搜索位置,可以配置多个。 username: username #访问 Git 仓库的用户名。 password: password #访问 Git 仓库的用户密码。 label: master #配置仓库的分支 ###如果Git仓库为公开仓库,可以不填写用户名和密码,如果是私有仓库需要填写。
(3)入口类,新增@EnableDiscoveryC巨ent注解,用来将config-server注册到上面配置的服务注册中心上去。
@EnableDiscoveryClient @EnableConfigServer @SpringBootApplication public class SpringcloudconfigserverApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudconfigserverApplication.class, args); } }
(4)启动config-server,通过Eureka-Server查看
四、改造Config-Client
(1)pom.xml,添加spring-cloud-starter-eureka依赖
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
(2)bootstrap.properties,添加配置服务中心信息
spring.application.name=configspace spring.cloud.config.label=master spring.cloud.config.profile=dev spring.cloud.config.uri= http://localhost:5588/ server.port=5589 eureka.client.serviceUrl.defaultZone=http://localhost:5555/eureka/
(3)入口类,添加@EnableDiscoveryClient
@EnableDiscoveryClient @SpringBootApplication public class SpringcloudconfigclientApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudconfigclientApplication.class, args); } }
(4)测试类不变
@RefreshScope @RestController public class ConfigController { @Value("${from}") private String from; @Value("${username}") private String username; @Value("${password}") private String password; @RequestMapping("/from") public String from() { return this.from + "~user:" + this.username + "~pass:" + this.password; } }
(5)启动测试,通过Eureka-Server查看
(6)浏览器测试,访问http://localhost:5589/from
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍SpringCloud-Config分布式配置代码示例,包括了SpringCloud-Config分布式配置代码示例的使用技巧和注意事项,需要的朋友参考一下 概述 Spring Cloud Config为分布式系统中的外部化配置提供服务器端和客户端支持。使用Config Server,您可以在中心位置管理所有环境中应用程序的外部属性。客户端和服务器上的概念都与Spring Envir
项目地址 上次发布了直连方式的seata配置,详细可以看这篇博客 我们接着上一篇的基础上去配置nacos做配置中心跟dubbo注册中心. 准备工作 1.首先去nacos的github上下载最新版本 2.下载好了后,很简单,解压后到bin目录下去启动就好了,看到如图所示就成了: 3.启动完毕后访问:http://127.0.0.1:8848/nacos/ 是不是看到这样的界面了?输入
本文向大家介绍SpringCloud用Zookeeper搭建配置中心的方法,包括了SpringCloud用Zookeeper搭建配置中心的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍了SpringCloud +Zookeeper完成配置中心,分享给大家,具有如下: 使用场景 项目配置更改不需要打包,重启 提供配置文件的可视化界面 和springcloud快速整合 为什么使用zookeep
Zookeeper提供了一个分层命名空间,允许客户端存储任意数据,如配置数据。Spring Cloud Zookeeper Config是Config Server和Client的替代方案。在特殊的“引导”阶段,配置被加载到Spring环境中。默认情况下,配置存储在/config命名空间中。根据应用程序的名称和模拟解析属性的Spring Cloud Config顺序的活动配置文件,创建多个Prop
本文向大家介绍CodeIgniter配置之config.php用法实例分析,包括了CodeIgniter配置之config.php用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了CodeIgniter配置之config.php用法。分享给大家供大家参考,具体如下: 配置说明 $config['language']:指定项目语言包。需要注意的时Codeigniter自带的类库错误
本文向大家介绍CodeIgniter配置之routes.php用法实例分析,包括了CodeIgniter配置之routes.php用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了CodeIgniter配置之routes.php用法。分享给大家供大家参考,具体如下: application/config/routes.php中定义了一个名为$route的数组,用来设置默认路由和4