<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在分散式系統中,由於應用被拆分成數量巨多的小服務,另外應用也部署在不同的環境之中,如dev、int、uat、prod等,各個環境的設定不盡相同,為了方便組態檔統一管理,所以需要分散式設定中心元件。
組態檔統一管理之後,各個環境只能獲取對應環境的設定資訊,開發人員也只能獲取到開發環境的設定資訊,就能在一定程度上避免敏感資訊的洩露。
Spring Cloud Config作為分散式設定中心元件 ,包括Config 伺服器端,和Config 使用者端。
建立子模組config-server,pom.xml引入eureka-client 和config-server的依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
新建config-server自身的組態檔application.yml
server:
port: 8005
spring:
application:
name: config-server
profiles:
active: native #使用本地檔案
cloud:
config:
server:
native:
search-locations: classpath:/repo #本地設定倉庫地址
# git:
# uri: https://gitee.com/xxxx/xxxxx.git
eureka:
client:
service-url:
defaultZone: http://localhost:8001/eureka/
這裡我們以使用本地設定倉庫地址為例,spring.profiles.active設定為native,設定倉庫路徑為repo資料夾,所以我們在resources檔案下建立repo資料夾,並建立新的一個configclient-dev.yml的檔案,內容如下:
server:
port: 8007eureka:
client:
service-url:
defaultZone: http://localhost:8001/eureka/
feign:
hystrix:
enabled: true
logging:
pattern:
console: '%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'
@EnableConfigServer //開啟設定服務 @EnableEurekaClient @SpringBootApplication public class ConfitServerApplication { public static void main(String[] args) { SpringApplication.run(ConfitServerApplication.class, args); } }
注意增加@EnableConfigServer註解,表示這是個設定中心伺服器端。
伺服器端開發完成後,我們再新建一個使用者端config-client專案,引入如下依賴:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
與伺服器端不同的是,使用者端的組態檔我們建立bootstrap.yml檔案
spring:
cloud:
config:
name: configclient
profile: dev
label: master
discovery:
enabled: true
service‐id: config-servereureka:
client:
service‐url:
defaultZone: http://localhost:8001/eureka/
注意spring.cloud.config.name與伺服器端中的檔名稱對應,spring.cloud.config.profile與檔名-後面的環境程式碼對應,組態檔的命名規則是 {application}/{profile}[/{label}] 。
當 Config Client 去存取 Config Server 時,spring.cloud.config.name 、spring.cloud.config.profile 以及 、spring.cloud.config.label 的值分別對應上面三個預留位置,如果設定了spring.cloud.config.name,那麼就取spring.cloud.config.name,如果沒有設定就取 spring.application.name,通過靈活使用 {application} 、{profile} 、{label} 三個預留位置,就可以來動態地控制 client 從 server 所存取的倉庫!
然後編寫使用者端啟動類:
@EnableDiscoveryClient @EnableFeignClients @EnableEurekaClient @SpringBootApplication public class ConfigClientApplication { public static void main(String[] args) { SpringApplication.run(ConfigClientApplication.class, args); } }
我們分別啟動registry專案以及config-server,config-client兩個服務,這時,就會發現,config-client服務拉取了config-server中對應的組態檔。
這篇文章我們介紹了一下 Spring Cloud Config 的一個基本使用,包括 Spring Cloud Config Server 和 Spring Cloud Config Client 的專案搭建。通過環境的設定隔離,避免了敏感設定資訊的洩露。
有人可能就說了,我本地把拉取dev的設定改成拉取prod不一樣也能拿到其他環境的資訊嗎?下一篇文章我們介紹如何通過 Config Server 的安全管理、組態檔的加密等機制真正做到這一點,一起期待吧!
到此這篇關於SpringCloud使用集中設定元件Config規避資訊洩露的文章就介紹到這了,更多相關SpringCloud集中設定元件Config內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45