spring cloud配置檔案隨筆

2021-10-09 21:25:29 字數 1742 閱讀 8096

在我多年工作經驗中,接觸到的很多分布式專案都將開發引入了無底的深淵,因為痛苦的經歷太多,所以在我成為一名架構,搭建分布式架構時,我努力避開那些深淵,使團隊中的業務開發人員不至於掐死我。

從前年時,我開時接觸微服務架構(主要是spring-cloud技術棧),綜觀網上流行的一些開源專案,或者有些開發者搭建微服務平台,感覺他們太過把微服務當微服務了,以至於根本就無法分模組開發。主要原因是搭建者不了解spring-cloud框架,或者經驗不足,不明白開發環境與測試環境(或正式環境)解耦的重要性。我本人主張輕便開發,我盡量讓我的團隊在開發時關注業務,而不要時時刻刻關注微服務中的其它元件。

執行時,我們的服務會連線配置中心以及註冊中心。但在開發環境,如果開發人員共用註冊中心或配置中心肯定會產生很多問題。而讓業務開發人員在本地架設配置中心和註冊中心會增加學習成本,浪費開發的硬體資源(同時在本地啟動多個元件,會占用更多的cup和記憶體)。通過簡單的配置,可暫停服務註冊與配置讀取。以下是我的配置檔案列表:

bootstrap-dev.yml

bootstrap-docker.yml

bootstrap-pro.yml

bootstrap-test.yml

bootstrap.yml

可以看出,我共用了四種開發環境,其中bootstrap-docker.yml是我執行在k8s中的測試配置。以下是我bootstrap-dev.yml(開發環境),以及bootstrap-test.yml(正式環境配置的內容)

開發環境:bootstrap-dev.yml

spring:

profiles: dev

cloud:

config:

enabled: false

allow-override: true

discovery:

enabled: false

bus:

enabled: false

consul:

discovery:

enabled: false

register: false

config:

enabled: false

enabled: false

server:

port: 8080

servlet:

注意上面enable我都設為false,這樣就可以讀取本地配置,以及取消服務發現功能。

測試環境 bootstrap-test.yml:

spring:

profiles:

include: info

cloud:

consul:

discovery:

config:

format: yaml

data-key: data

server:

port: 8081

management:

endpoint:

health:

show-details: always

測試環境沒有那些enable配置,因為預設情況下都為true

配置中心,及註冊中心用的是consul,如果instance-id按官網的配置,每次啟動都會產生不一樣的id,這樣專案啟動會造成多個無效的例項存在於註冊列表中。因此我改用了服務名+ip+port的方案。關於配置,其實有很多細節可以說明的,以後可以慢慢聊

spring cloud配置檔案2

在上篇文章裡提到了通過禁用服務發現和配置中心來方便開發,那麼問題來了,如果我們要用ribbon訪問某遠端服務,我們該如何做呢。雖然開發環境禁用了服務發現,無法獲取服務列表,但我們可以通過配置檔案為某服務配置乙個靜態位址。pda sync ribbon listofservers 13.13.31.9...

springCloud專案配置檔案優先順序

boostrap.yml的優先順序低於 boostrap.properties,即yml,先於properties載入 注意 比如在boostrap.yml中配置了 spring profiles active myconfig在實踐中的表現是這樣,具體原因還不清楚 網上有很多介紹的,看的我也暈乎了...

drbd配置檔案 drbd配置檔案

drbd配置檔案 vim usr local drbd etc drbd.d global common.conf global usage count yes 是否參加drbd使用者統計 common protocol c 使用drbd的第三種同步協議 disk 使用dpod功能保證在數 on i...