(九)整合spring cloud雲服務架構 - commonservice-config配置服務搭建

fumi106發表於2020-10-27

1. 介紹

Spring Cloud Config為分散式系統中的外部配置提供伺服器和客戶端支援。使用Config Server,您可以在所有環境中管理應用程式的外部屬性。客戶端和伺服器上的概念對映與Spring  EnvironmentPropertySource抽象相同,因此它們與Spring應用程式非常契合,但可以與任何以任何語言執行的應用程式一起使用。隨著應用程式通過從開發人員到測試和生產的部署流程,您可以管理這些環境之間的配置,並確定應用程式具有遷移時需要執行的一切。伺服器儲存後端的預設實現使用git,因此它輕鬆支援標籤版本的配置環境,以及可以訪問用於管理內容的各種工具。很容易新增替代實現,並使用Spring配置將其插入。

2. 引入pom相關jar包,其中pom.xml配置如下:

Xml程式碼   收藏程式碼
  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. < project   xmlns = "http://maven.apache.org/POM/4.0.0"   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"   
  3.      xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >   
  4.      < modelVersion > 4.0.0 </ modelVersion >   
  5.   
  6.      < parent >   
  7.          < groupId > com.ml.honghu </ groupId >   
  8.          < artifactId > commonservice </ artifactId >   
  9.          < version > 0.0.1-SNAPSHOT </ version >   
  10.      </ parent >   
  11.       
  12.      < artifactId > commonservice-config </ artifactId >   
  13.      < packaging > jar </ packaging >   
  14.   
  15.      < name > commonservice-config </ name >   
  16.      < description > Config Server </ description >   
  17.   
  18.      < dependencies >   
  19.          < dependency >   
  20.              < groupId > org.springframework.cloud </ groupId >   
  21.              < artifactId > spring-cloud-config-server </ artifactId >   
  22.          </ dependency >   
  23.          < dependency >   
  24.              < groupId > org.springframework.cloud </ groupId >   
  25.              < artifactId > spring-cloud-starter-eureka </ artifactId >   
  26.          </ dependency >   
  27.          < dependency >   
  28.                      < groupId > org.springframework.boot </ groupId >   
  29.                      < artifactId > spring-boot-starter-security </ artifactId >   
  30.              </ dependency >   
  31.          < dependency >   
  32.              < groupId > org.springframework.boot </ groupId >   
  33.              < artifactId > spring-boot-starter-test </ artifactId >   
  34.              < scope > test </ scope >   
  35.          </ dependency >   
  36.      </ dependencies >   
  37.   
  38.      < build >   
  39.          < plugins >   
  40.              < plugin >   
  41.                  < groupId > org.springframework.boot </ groupId >   
  42.                  < artifactId > spring-boot-maven-plugin </ artifactId >   
  43.                  < executions >   
  44.                      < execution >   
  45.                          < id > 1 </ id >   
  46.                          < goals >   
  47.                              < goal > repackage </ goal >   
  48.                          </ goals >   
  49.                      </ execution >   
  50.                                      < execution >   
  51.                                          < id > 2 </ id >   
  52.                                              < goals >   
  53.                                                     < goal > build-info </ goal >   
  54.                                              </ goals >   
  55.                                      </ execution >   
  56.                  </ executions >   
  57.              </ plugin >   
  58.          </ plugins >   
  59.      </ build >   
  60. </ project >   

 3. 在src/main/java進行ConfigApplication.java啟動檔案配置:

 

Java程式碼   收藏程式碼
  1. package  com.ml.honghu;  
  2.   
  3. import  org.springframework.boot.SpringApplication;  
  4. import  org.springframework.boot.autoconfigure.SpringBootApplication;  
  5. import  org.springframework.cloud.config.server.EnableConfigServer;  
  6. import  org.springframework.cloud.netflix.eureka.EnableEurekaClient;  
  7.   
  8. @EnableConfigServer   
  9. @EnableEurekaClient   
  10. @SpringBootApplication   
  11. public   class  ConfigApplication {  
  12.   
  13.      public   static   void  main(String[] args) {  
  14.         SpringApplication.run(ConfigApplication. class , args);  
  15.     }  
  16. }  

 4. 在src/main/resource下進行bootstrap.yml配置

Java程式碼   收藏程式碼
  1. server:   
  2. port:  8888   
  3. spring:  
  4.   application:  
  5.     name: commonservice-config-server  
  6.   profiles:  
  7.     active: discovery, native   
  8.   cloud:  
  9.     config:  
  10.       server:  
  11.         git:  
  12.           uri: http: //192.168.0.254/honghu.../honghu-config.git   
  13.           username: honghu  
  14.           password:  123456   
  15.           searchPaths: config-dev  
  16. security:  
  17.   basic:  
  18.     enabled:  true   
  19.   user:  
  20.     name: honghu  
  21.     password:  123456   
  22. eureka:  
  23.   client:  
  24.     serviceUrl:  
  25.       defaultZone: http: //honghu:123456@localhost:8761/eureka/   
  26.       honghuZone: http: //honghu:123456@localhost:8761/eureka/   
  27.     registry-fetch-interval-seconds:  300   
  28.     availability-zones:  
  29.       honghu: honghuZone  
  30.   instance:  
  31.     prefer-ip-address:  true   
  32.     metadataMap:  
  33.       version:  1.0   
  34.       variant: A  
  35.       user: ${security.user.name}  
  36.       password: ${security.user.password}  
  37. management:  
  38.   security:  
  39.     enabled:  false   

 注意: 如果不從遠端git或者svn庫載入配置檔案資訊,可以配置載入本地地址,比如window下配置使用:

Java程式碼   收藏程式碼
  1. server:   
  2. port:  8888   
  3. spring:  
  4.   application:  
  5.     name: commonservice-config-server  
  6.   profiles:  
  7.     active: discovery, native   
  8.   cloud:  
  9.     config:  
  10.       server:  
  11.         <span style= "color: #ff0000;" > native .searchLocations: d:/honghu-config</span>  
  12. security:  
  13.   basic:  
  14.     enabled:  true   
  15.   user:  
  16.     name: honghu  
  17.     password:  123456   
  18. eureka:  
  19.   client:  
  20.     serviceUrl:  
  21.       defaultZone: http: //honghu:123456@localhost:8761/eureka/   
  22.       honghuZone: http: //honghu:123456@localhost:8761/eureka/   
  23.     registry-fetch-interval-seconds:  300   
  24.     availability-zones:  
  25.       honghu: honghuZone  
  26.   instance:  
  27.     prefer-ip-address:  true   
  28.     metadataMap:  
  29.       version:  1.0   
  30.       variant: A  
  31.       user: ${security.user.name}  
  32.       password: ${security.user.password}  
  33. management:  
  34.   security:  
  35.     enabled:  false   

 

 到此,整個config服務專案配置完畢!!

 

從現在開始,我這邊會將近期研發的spring cloud微服務雲架構的搭建過程和精髓記錄下來,幫助更多有興趣研發spring cloud框架的朋友,大家來一起探討spring cloud架構的搭建過程及如何運用於企業專案。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69984376/viewspace-2730195/,如需轉載,請註明出處,否則將追究法律責任。

相關文章