千家信息网

SpringCloud分布式微服务云架构 第七篇: 高可用的分布式配置中心(Config)

发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如
千家信息网最后更新 2025年01月29日SpringCloud分布式微服务云架构 第七篇: 高可用的分布式配置中心(Config)

上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,

都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下:

一、准备工作

继续使用上一篇文章的工程,了解springcloud架构可以加求求:三五三六二四七二五九创建一个eureka-server工程,

用作服务注册中心。

在其pom.xml文件引入Eureka的起步依赖spring-cloud-starter-netflix- eureka-server,代码如下:

        4.0.0        com.forezp        config-server        0.0.1-SNAPSHOT        jar        config-server        Demo project for Spring Boot                        com.forezp                sc-f-chapter7                0.0.1-SNAPSHOT                                                        org.springframework.cloud                        spring-cloud-starter-netflix-eureka-client                                                        org.springframework.boot                        spring-boot-starter-web                                                        org.springframework.cloud                        spring-cloud-config-server                                                                                                        org.springframework.boot                                spring-boot-maven-plugin                                                

在配置文件application.yml上,指定服务端口为8889,加上作为服务注册中心的基本配置,代码如下:

server:  port: 8889eureka:  instance:    hostname: localhost  client:    registerWithEureka: false    fetchRegistry: false    serviceUrl:      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

入口类:

@EnableEurekaServer@SpringBootApplicationpublic class EurekaServerApplication {        public static void main(String[] args) {                SpringApplication.run(EurekaServerApplication.class, args);        }}

二、改造config-server
在其pom.xml文件加上EurekaClient的起步依赖spring-cloud-starter-netflix-eureka-client,代码如下:

                                        org.springframework.cloud                        spring-cloud-starter-netflix-eureka-client                                                        org.springframework.boot                        spring-boot-starter-web                                                        org.springframework.cloud                        spring-cloud-config-server                        

配置文件application.yml,指定服务注册地址为 http://localhost:8889/eureka/,其他配置同上一篇文章,完整的配置如下:

spring.application.name=config-serverserver.port=8888spring.cloud.config.server.git.uri=https://github.com/forezp/SpringcloudConfig/spring.cloud.config.server.git.searchPaths=respospring.cloud.config.label=masterspring.cloud.config.server.git.username= your usernamespring.cloud.config.server.git.password= your passwordeureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/

最后需要在程序的启动类Application加上@EnableEureka的注解。

三、改造config-client

将其注册微到服务注册中心,作为Eureka客户端,需要pom文件加上起步依赖spring-cloud-starter-netflix-eureka-client,代码如下:

                                        org.springframework.cloud                        spring-cloud-starter-config                                                        org.springframework.boot                        spring-boot-starter-web                                                        org.springframework.cloud                        spring-cloud-starter-netflix-eureka-client                        

配置文件bootstrap.properties,注意是bootstrap。加上服务注册地址为 http://localhost:8889/eureka/

spring.application.name=config-clientspring.cloud.config.label=masterspring.cloud.config.profile=dev#spring.cloud.config.uri= http://localhost:8888/eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/spring.cloud.config.discovery.enabled=truespring.cloud.config.discovery.serviceId=config-serverserver.port=8881

spring.cloud.config.discovery.enabled 是从配置中心读取文件。

spring.cloud.config.discovery.serviceId 配置中心的servieId,即服务名。

这时发现,在读取配置文件不再写ip地址,而是服务名,这时如果配置服务部署多份,通过负载均衡,从而高可用。

依次启动eureka-servr,config-server,config-client

访问网址:http://localhost:8889/

访问http://localhost:8881/hi,浏览器显示:

foo version 3

配置 服务 文件 代码 地址 篇文章 上一 架构 工程 改造 均衡 入口 基本配置 实例 客户 客户端 注解 浏览器 程序 端口 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 滦州市教育局网络安全活动 网页项目怎么实现数据库的操作 做大型游戏数据库需要多久 幼儿园网络安全应急预案演练 剑网三新服务器 国网网络安全活动通讯报道 怎么打开云数据库客户端 东土科技北京工业互联网联盟 连接到任意服务器出错 万维网数据库 mysql多个数据库查询 铁路网络技术公司 特斯拉 国内服务器 敏感 网络安全管理巡查制度 工行软件开发中心待遇6 网络安全联动工作机制方案 软件开发Debug仪器 闵行区提供数据库系统职能 威海联想服务器代理哪个系列好 怎么把文件复制到服务器 保存数据库的方法和步骤 一同看你想找的都在这里服务器 网络安全博士后 怎么改django里的数据库 阿里云服务器文件管理 嘉定区智能化软件开发定制价钱 河职电脑网络技术 数据库怎么重新定义索引 软件开发Debug仪器 湖南正益互联网科技有限公司
0