SpringCloud分散式微服務雲架構 第七篇: 高可用的分散式配置中心(Config)
上一篇文章講述了一個服務如何從配置中心讀取檔案,配置中心如何從遠端git讀取配置檔案,當服務例項很多時,
都從配置中心讀取檔案,這時可以考慮將配置中心做成一個微服務,將其叢集化,從而達到高可用,架構圖如下:
一、準備工作
繼續使用上一篇文章的工程,瞭解springcloud架構可以加求求:三五三六二四七二五九建立一個eureka-server工程,
用作服務註冊中心。
在其pom.xml檔案引入Eureka的起步依賴spring-cloud-starter-netflix- eureka-server,程式碼如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns=" xsi:schemaLocation=" <modelVersion>4.0.0</modelVersion> <groupId>com.forezp</groupId> <artifactId>config-server</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>config-server</name> <description>Demo project for Spring Boot</description> <parent> <groupId>com.forezp</groupId> <artifactId>sc-f-chapter7</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
在配置檔案application.yml上,指定服務埠為8889,加上作為服務註冊中心的基本配置,程式碼如下:
server: port: 8889 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: {eureka.instance.hostname}:${server.port}/eureka/
入口類:
@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
二、改造config-server
在其pom.xml檔案加上EurekaClient的起步依賴spring-cloud-starter-netflix-eureka-client,程式碼如下:
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies>
配置檔案application.yml,指定服務註冊地址為
spring.application.name=config-server server.port=8888 spring.cloud.config.server.git.uri= spring.cloud.config.server.git.searchPaths=respo spring.cloud.config.label=master spring.cloud.config.server.git.username= your username spring.cloud.config.server.git.password= your password eureka.client.serviceUrl.defaultZone=
最後需要在程式的啟動類Application加上@EnableEureka的註解。
三、改造config-client
將其註冊微到服務註冊中心,作為Eureka客戶端,需要pom檔案加上起步依賴spring-cloud-starter-netflix-eureka-client,程式碼如下:
<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-netflix-eureka-client</artifactId> </dependency> </dependencies>
配置檔案bootstrap.properties,注意是bootstrap。加上服務註冊地址為
spring.application.name=config-client spring.cloud.config.label=master spring.cloud.config.profile=dev #spring.cloud.config.uri= eureka.client.serviceUrl.defaultZone= spring.cloud.config.discovery.enabled=true spring.cloud.config.discovery.serviceId=config-server server.port=8881
spring.cloud.config.discovery.enabled 是從配置中心讀取檔案。
spring.cloud.config.discovery.serviceId 配置中心的servieId,即服務名。
這時發現,在讀取配置檔案不再寫ip地址,而是服務名,這時如果配置服務部署多份,透過負載均衡,從而高可用。
依次啟動eureka-servr,config-server,config-client
訪問網址:
訪問,瀏覽器顯示:
foo version 3
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952307/viewspace-2668436/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringCloud分散式微服務雲架構 第六篇: 分散式配置中心(Spring Cloud Config)SpringGCCloud分散式微服務架構
- (五)spring cloud微服務分散式雲架構-配置中心服務化和高可用SpringCloud微服務分散式架構
- 整合spring cloud雲架構 -高可用的分散式配置中心SpringCloud架構分散式
- SpringCloud-分散式配置中心(config)SpringGCCloud分散式
- SpringCloud-Config 分散式配置中心SpringGCCloud分散式
- springcloud微服務分散式雲架構-SpringCloud簡介SpringGCCloud微服務分散式架構
- springcloud微服務分散式雲架構簡介SpringGCCloud微服務分散式架構
- 業餘草 SpringCloud教程 | 第七篇: 高可用的分散式配置中心(Spring Cloud Config)(Finchley版本)SpringGCCloud分散式
- (一)springcloud微服務分散式雲架構-SpringCloud簡介SpringGCCloud微服務分散式架構
- Spring Cloud(八)高可用的分散式配置中心 Spring Cloud ConfigSpringCloud分散式
- (十五)spring cloud微服務分散式雲架構-commonservice-config配置服務搭建SpringCloud微服務分散式架構
- spring cloud微服務分散式雲架構- Config 快速開始SpringCloud微服務分散式架構
- spring cloud微服務分散式雲架構-config配置自動重新整理SpringCloud微服務分散式架構
- 【分散式微服務企業快速架構】SpringCloud分散式、微服務、雲架構快速開發平臺分散式微服務架構SpringGCCloud
- (三)springcloud微服務分散式雲架構-SpringCloud整合專案簡介SpringGCCloud微服務分散式架構
- Spring Cloud(九)高可用的分散式配置中心 Spring Cloud Config 整合 Eureka 服務SpringCloud分散式
- Spring Cloud構建微服務架構:分散式配置中心(加密解密)SpringCloud微服務架構分散式加密解密
- 微服務之分散式配置中心微服務分散式
- SpringCloud微服務系列- 分散式能力建設之配置中心SpringGCCloud微服務分散式
- spring cloud微服務分散式雲架構-Spring Cloud Config環境庫SpringCloud微服務分散式架構
- SpringCloud分散式微服務雲架構 第十篇: 高可用的服務註冊中心(Finchley版本)SpringGCCloud分散式微服務架構
- 《springcloud 三》分散式配置中心SpringGCCloud分散式
- SpringCloud之分散式配置中心(六)SpringGCCloud分散式
- 分散式配置中心spingcloud-config-server分散式GCCloudServer
- spring cloud微服務分散式雲架構--hystrix的使用SpringCloud微服務分散式架構
- 微服務分散式雲架構-springboot執行模式微服務分散式架構Spring Boot模式
- (四)spring cloud微服務分散式雲架構-配置中心和訊息匯流排(配置中心終結版)SpringCloud微服務分散式架構
- JAVA springboot微服務b2b2c電子商務系統-(七)高可用的分散式配置中心(Spring Cloud Config)JavaSpring Boot微服務分散式Cloud
- 分散式架構和微服務架構的區別分散式架構微服務
- 關於SpringCloud大型網際網路分散式企業微服務雲架構SpringGCCloud分散式微服務架構
- spring cloud微服務分散式雲架構-Spring Cloud 分散式的五大重點SpringCloud微服務分散式架構
- Spring Cloud Config 分散式配置中心【Finchley 版】SpringCloud分散式
- spring cloud微服務分散式雲架構-Gateway入門SpringCloud微服務分散式架構Gateway
- spring cloud微服務分散式雲架構Spring Cloud ZuulSpringCloud微服務分散式架構Zuul
- spring cloud微服務分散式雲架構-Spring Cloud NetflixSpringCloud微服務分散式架構
- spring cloud微服務分散式雲架構-Spring Cloud BusSpringCloud微服務分散式架構
- spring cloud微服務分散式雲架構-Commons 普通抽象SpringCloud微服務分散式架構抽象
- 微服務架構下分散式session管理微服務架構分散式Session