java B2B2C電子商務平臺分析之九--配置中心服務化和高可用
在前兩篇的介紹中,客戶端都是直接呼叫配置中心的server端來獲取配置檔案資訊。這樣就存在了一個問題,客戶端和服務端的耦合性太高,如果server端要做叢集,客戶端只能透過原始的方式來路由,server端改變IP地址的時候,客戶端也需要修改配置,不符合springcloud服務治理的理念。springcloud提供了這樣的解決方案,我們只需要將server端當做一個服務註冊到eureka中,client端去eureka中去獲取配置中心server端的服務既可。
server端改造
1、新增依賴
<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> </dependencies>
需要多引入spring-cloud-starter-eureka包,來新增對eureka的支援。
2、配置檔案
server: server: port: 8001 spring: application: name: spring-cloud-config-server cloud: config: server: git: uri: 配置git倉庫的地址 search-paths: config-repo # git倉庫地址下的相對地址,可以配置多個,用,分割。 username: username # git倉庫的賬號 password: password # git倉庫的密碼 eureka: client: serviceUrl: defaultZone: 註冊中心eurka地址
增加了eureka註冊中心的配置
3、啟動類
啟動類新增@EnableDiscoveryClient啟用對配置中心的支援
@EnableDiscoveryClient @EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
這樣server端的改造就完成了。先啟動eureka註冊中心,在啟動server端,在瀏覽器中訪問:就會看到server端已經註冊了到註冊中心了。
按照上篇的測試步驟對server端進行測試服務正常。
客戶端改造
1、新增依賴
<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>
需要多引入spring-cloud-starter-eureka包,來新增對eureka的支援。
2、配置檔案
spring.application.name=spring-cloud-config-client server.port=8002 spring.cloud.config.name=neo-config spring.cloud.config.profile=dev spring.cloud.config.label=master spring.cloud.config.discovery.enabled=true spring.cloud.config.discovery.serviceId=spring-cloud-config-server eureka.client.serviceUrl.defaultZone=eureka/
主要是去掉了spring.cloud.config.uri直接指向server端地址的配置,增加了最後的三個配置:
spring.cloud.config.discovery.enabled :開啟Config服務發現支援
spring.cloud.config.discovery.serviceId :指定server端的name,也就是server端spring.application.name的值
eureka.client.serviceUrl.defaultZone :指向配置中心的地址
這三個配置檔案都需要放到bootstrap.properties的配置中
3、啟動類
啟動類新增@EnableDiscoveryClient啟用對配置中心的支援
@EnableDiscoveryClient @SpringBootApplication public class ConfigClientApplication { public static void main(String[] args) { SpringApplication.run(ConfigClientApplication.class, args); } }
啟動client端,在瀏覽器中訪問: 就會看到server端和client端都已經註冊了到註冊中心了。
高可用
為了模擬生產叢集環境,我們改動server端的埠為8003,再啟動一個server端來做服務的負載,提供高可用的server端支援。
如上圖就可發現會有兩個server端同時提供配置中心的服務,防止某一臺down掉之後影響整個系統的使用。
我們先單獨測試服務端,分別訪問:http://localhost:8001/neo-config/dev、http://localhost:8003/neo-config/dev返回資訊:
{ "name": "neo-config", "profiles": [ "dev" ], "label": null, "version": null, "state": null, "propertySources": [ { "name": "https://github.com/ityouknow/spring-cloud-starter/config-repo/neo-config-dev.properties", "source": { "neo.hello": "hello im dev" } } ] }
說明兩個server端都正常讀取到了配置資訊。
再次訪問:,返回:hello im dev update。說明客戶端已經讀取到了server端的內容,我們隨機停掉一臺server端的服務,再次訪問,返回:hello im dev update,說明達到了高可用的目的。
整體程式碼結構如下
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31539957/viewspace-2222237/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java B2B2C電子商務平臺分析之十六----Zuul的容錯回退與高可用JavaZuul
- java B2B2C電子商務平臺分析之八--配置中心svn示例和refreshJava
- java B2B2C電子商務平臺分析之十一------配置中心和訊息匯流排Java
- java B2B2C電子商務平臺分析之七-Spring Cloud ConfigJavaSpringCloud
- java B2B2C電子商務平臺分析之十------服務閘道器zuulJavaZuul
- java B2B2C電子商務平臺分析之十四-----註冊中心 ConsulJava
- java B2B2C電子商務平臺分析之十五-----EureKa服務註冊與發現Java
- java B2B2C原始碼電子商務平臺-配置中心svn示例和refreshJava原始碼
- java B2B2C 原始碼 多級分銷springmvc mybatis多租戶電子商城系統--配置中心服務化和高可用Java原始碼SpringMVCMyBatis
- java B2B2C原始碼電子商務平臺Java原始碼
- java B2B2C原始碼電子商務平臺 -commonservice-config配置服務搭建Java原始碼
- SpringCloud微服務雲架構構建B2B2C電子商務平臺之-(十)高可用的服務註冊中心SpringGCCloud微服務架構
- java B2B2C Springcloud電子商務平臺原始碼JavaSpringGCCloud原始碼
- java B2B2C springmvc mybatis電子商務平臺原始碼-Hystrix 基本配置JavaSpringMVCMyBatis原始碼
- java B2B2C電子商務平臺------服務閘道器zuulJavaZuul
- (五)spring cloud微服務分散式雲架構-配置中心服務化和高可用SpringCloud微服務分散式架構
- java B2B2C Springcloud電子商務平臺原始碼-RIBBON 核心設計和原理分析JavaSpringGCCloud原始碼
- (十四)JAVA springboot微服務b2b2c電子商務系統- Spring Cloud構建分散式電子商務平臺JavaSpring Boot微服務Cloud分散式
- java B2B2C springmvc mybatis電子商務平臺原始碼JavaSpringMVCMyBatis原始碼
- JAVA springboot微服務b2b2c電子商務系統-(七)高可用的分散式配置中心(Spring Cloud Config)JavaSpring Boot微服務分散式Cloud
- java B2B2C Springcloud電子商務平臺原始碼 -Feign之原始碼解析JavaSpringGCCloud原始碼
- SpringCloud微服務雲架構構建B2B2C電子商務平臺分析之-服務消費(Ribbon)SpringGCCloud微服務架構
- spring cloud構建java版 b2b2c電子商務雲商平臺SpringCloudJava
- java B2B2C Springcloud電子商務平臺原始碼-eureka叢集整合config配置中心JavaSpringGCCloud原始碼
- java B2B2C原始碼電子商務平臺---大話Spring CloudJava原始碼SpringCloud
- java B2B2C Springboot電子商務平臺原始碼-Feign 基本使用JavaSpring Boot原始碼
- java B2B2C Springcloud電子商務平臺原始碼-Ribbon 基本使用JavaSpringGCCloud原始碼
- java B2B2C springmvc mybatis電子商務平臺原始碼-訊息佇列之RocketMQJavaSpringMVCMyBatis原始碼佇列MQ
- 關於SpringCloud微服務雲架構構建B2B2C電子商務平臺之-(SpringGCCloud微服務架構
- java B2B2C Springcloud電子商務平臺原始碼-自定義feign配置與服務呼叫的安全驗證JavaSpringGCCloud原始碼
- java B2B2C Springboot電子商務平臺原始碼-Feign設計原理JavaSpring Boot原始碼
- java B2B2C springmvc mybatis電子商務平臺原始碼-Spring Cloud SecurityJavaSpringMVCMyBatis原始碼Cloud
- java B2B2C原始碼電子商務平臺 ---搭建Eureka註冊中心Java原始碼
- java B2B2C Springcloud電子商務平臺原始碼-服務閘道器過濾器JavaSpringGCCloud原始碼過濾器
- java B2B2C Springcloud電子商務平臺原始碼------Hystrix的快取使用JavaSpringGCCloud原始碼快取
- 電子商務平臺(E-Business Platform)Platform
- java版 spring cloud spring boot mybatis實現 b2b2c 多商戶電子商務平臺JavaCloudSpring BootMyBatis
- java B2B2C springmvc mybatis電子商務平臺原始碼--熔斷監控TurbineJavaSpringMVCMyBatis原始碼