1. 程式人生 > >Spring Cloud Config配置中心(內網實用版native)

Spring Cloud Config配置中心(內網實用版native)

                                     Native本地配置檔案簡介

在接觸微服務的時候就瞭解到config可以配置整合svn、git、DB、快取資料庫等,同時也支援修改配置無需重新啟動等強大功能。

然則,我們的現實是我們是內網,給客戶部署的無需svn 、git等,同時熱載入配置檔案也可以暫時不採用(需要引入其他的元件,對於部署 也就增加的運維時間成本)

                                              怎麼辦?

覺得應該還有其他的解決方案,搜了下相關資料瞭解到了一個native本地配置,config也是支援的。

採用它是可行的,開工。

主要解決的問題:

1.配置檔案 統一集中配置

2.每個模組的資料庫配置、快取配置 獨立出來

3.通用配置獨立出來

遇到的問題

客戶端無法載入多個配置檔案?(放了一段時間後,瀏覽其他部落格的時候 ,解決了)

總結:遇到的暫時解決不了的問題暫且放下,做個標記,之後的工作當中會很輕易的解決掉(把問題擱置),config功能很強大,我們只採用的部分功能,需要能幫助到您。

Config簡介

在分散式系統中,每一個功能模組都能拆分成一個獨立的服務,一次請求的完成,可能會呼叫很多個服務協調來完成,為了方便服務配置檔案統一管理,更易於部署、維護,所以就需要分散式配置中心元件了,在spring cloud中,有分散式配置中心元件spring cloud config,它支援配置檔案放在在配置服務的記憶體中,也支援放在遠端Git倉庫裡。引入spring cloud config後,我們的外部配置檔案就可以集中放置在一個git倉庫裡,再新建一個config server,用來管理所有的配置檔案,維護的時候需要更改配置時,只需要在本地更改後,推送到遠端倉庫,所有的服務例項都可以通過config server來獲取配置檔案,這時每個服務例項就相當於配置服務的客戶端config client,為了保證系統的穩定,配置服務端config server可以進行叢集部署,即使某一個例項,因為某種原因不能提供服務,也還有其他的例項保證服務的繼續進行

                                           配置流程如下

1.服務端核心配置

引入相關jar後,配置檔案配置:

spring:
  cloud:
    config:
      server:
        native:
          search-locations: classpath:properties/,classpath:properties/provider-model/,
          #username:
          #password:
          #search-paths: test-CONFIG
  application:
    name: config-server
  profiles:
    active: native
#eureka配置
eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:7001/eureka/
  instance:
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}

server:
    port: 7006



目錄截圖:

需要注意的點:

1.search-locations的用法,指定搜尋的目錄,更加詳細的配置可研究下
2.properties目錄是新建立的,配置檔案都放在根目錄下載入順序會受到影響 

config是註冊到eureka當中的,客戶端也需要從配置中心讀取相關服務

客戶端配置如下:採用的是服務的形式(核心配置如下)

spring:
  application:
    name: provider-order
  cloud:
    config:
      discovery:
        service-id: config-server
        enabled: true
      profile: dev
      name: common,db-mysql,redis,provider-order
      label: master

eureka:
  client: #客戶端註冊進eureka服務列表內
    service-url:
     defaultZone: http://localhost:7001/eureka/
        #defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  instance:
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}
    prefer-ip-address: true      #訪問路徑可以顯示IP地址







分析:

config:
  discovery:
    service-id:  指定從註冊中心讀取的服務ID(重點)
profile:指定要讀取的配置  如dev、test等

最核心的是name

name: common,db-mysql,redis,provider-order

通過此方式可以引入多個配置檔案。

 

結束語:微服務的應用越來越廣泛,願盡綿薄之力幫助大家快速瞭解微服務架構,感興趣的的可以關注今日頭條 @架構師速成記