springcloud 入門 8 (config配置中心)


 Spring Cloud Config:

  配置中心為了方便服務配置文件統一管理,實時更新,所以需要分布式配置中心組件,它就是Spring Cloud Config.

  在分布式系統中,由於服務數量巨多,為了方便服務配置文件統一管理,實時更新,所以需要分布式配置中心組件。在Spring Cloud中,有分布式配置中心組件spring cloud config ,它支持配置服務放在配置服務的內存中(即本地),也支持放在遠程Git倉庫中。在spring cloud config 組件中,分兩個角色,一是config server,二是config client。 

服務端搭建:

  第一步:創建一個springcloud的項目,重新開發,和前面幾章創建的項目沒有關系了。后期會整合起來的。pom如下:

    

  第二步:啟動類配置: @EnableConfigServer

    

  第三步:修改配置文件:application.yml

    

    

  第四步:啟動服務端進行測試:

    github上的配置文件目錄如下:

      

      啟動項目后,訪問zuul-dev的配置文件,有兩類訪問方式:

       第一種,rest訪問:

         

       第二種:直接對應文件名稱訪問 

         

http請求地址和存放資源文件映射如下:
  • /{application}/{profile}[/{label}]        
  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}-{profile}.properties
  • /{label}/{application}-{profile}.properties

eg:  config-client-dev.properties

    {application}-{profile}.properties

  其中 application  相當於是文件的  config-client,profile 相當於 dev

   訪問方式如下: 

      

    文件名訪問如下:

      

  這是properties后綴文件,ynl文件也是類似,大家可以自己試一下,我就不演示了  

 

   這是服務端的啟動和測試,那么我們來創建一個客戶端,來調用服務端的配置文件試一下效果.

客戶端搭建:

   第一步:搭建客戶端項目:pom文件如下:

    

     第二步:寫個測試請求

    

   第三步:修改配置文件:bootstrap.yml【注意這個配置名字】

    

 

   第四步:啟動測試:

    啟動9008端口服務:

      

           

 

   到這客戶端也基本上搭建完畢(這只是springcloud的入門學習。不會介紹很深,后期的整合應用會更進一步去介紹他們的用法)

   請求流程:

    

 


注意:

  config 客戶端啟動會經常報  8888錯誤?

  

  問題解決:

    通過啟動日志可以發現:服務還是去 默認端口8888取配置中心的文件;這是怎么回事呢。其實就是一個配置文件優先級的問題;SpringCloud里面有個“啟動上下文”,主要是用於加載遠端的配置,也就是加載ConfigServer里面的配置,默認加載順序為:加載bootstrap.*里面的配置 --> 鏈接configserver,加載遠程配置 --> 加載application.*里面的配置; 總結:這里需要借助於“啟動上下文”來處理加載遠程配置;

          所以只要將配置文件改為bootstrap.properties或bootstrap.yml文件即可(這也是我上面為啥給配置文件命名bootstrap的原因)


 

config的高可用:

  上面已經介紹了服務如何從配置中心讀取文件,配置中心如何從遠程git讀取配置文件,當服務實例很多時,都從配置中心讀取文件,這時可以考慮將配置中心做成一個微服務,將其集群化,從而達到高可用,架構圖如下:

    

  我來演示怎么搭建向服務中心注冊的配置中心:(向enreka注冊,在前面我已經介紹了,現在只不過把配置中心化的服務端和客戶端做成一個微服務,向enreka進行注冊)

   我的服務中心9000,在前面幾篇博客都是在用9000作為服務中心,現在我從新把它啟動作為注冊中心。讓config-server 和config-client 注冊到9000上:

    修改config-server:

      第一步:修改pom文件,把enreka的客戶端加進來:

       

      第二步:啟動類加上向服務器注冊的注解標簽:

       

      第三步:修改配置文件,向9000注冊:

       

    修改config-client :

      步奏與上面一直, 我就不重復粘貼了,唯一不同的是修改config-server 時修改的是application.yml。config-client 修改的 bootstrap.yml文件

 

   修改完成后啟動注冊中心,config-server,和config-client,訪問9000端口測試如下:

     

    訪問測試如下:

      

 

  到這高可用的基本模型搭建出來了。注意這里的高可用應該是config-server做一個集群,供客戶端訪問從而進行負載均衡,保證請求的響應,但是我只是介紹這種概念,就不再建config-server的集群來演示了。大家明白高可用是通過集群來實現的就可以了,如果后期需要我會在高級課程中再介紹


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM