成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

架構設計--配置信息管理

開發 架構
配置信息管理是系統平穩運行不可或缺的重要組成部分,不同的管理策略,適應于不同的場景,我們需要熟知各種策略的優缺點,根據自身的情況進行選擇。

0. 配置信息

配置信息特指程序啟動時對程序進行配置的信息,常見的如服務端口、數據庫連接信息、線程池信息等。

在系統啟動時,程序會通過不同的配置方案,主動獲取配置信息,以完成系統的初始化工作。

因此,配置信息的管理是一件非常重要的事情。

您的配置信息是怎么管理的呢?讓我們一起見證下配置信息管理的不同方案。

1. 將配置信息寫死在業務代碼中

在業務代碼中寫死配置信息絕對是大部分新手常干的事情。

 

該策略有以下幾個特點:

  1. 配置信息與源碼揉在一起,沒有進行分離;
  2. 在編譯前需要手工修改源碼;
  3. 不同環境所使用的 class 文件不同;
  4. 不同環境所部署的 war 包不同;

由于系統可能會被部署在不同的環境中(如開發環境、測試環境、生產環境等 ), 但不同環境之間存在的差異性 (如各個環境的URL不同、賬號/密碼不同、單機所允許申請的最大連接數不同等 ), 會使開發人員每次都只能通過修改業務代碼的方式進行適應。

在一些比較簡單的單元測試場景中,我們可以將配置信息寫死在測試代碼中。

2. 將配置信息配置到配置文件中

修改源碼會破壞系統的穩定性,在大部分情況下,我們都會選擇將相關配置信息配置在配置文件中,當系統啟動時,會從指定文件進行加載,通過配置文件中的配置信息來完成環境的初始化工作。

 

此方案存在以下特征:

  1. 完成配置信息與源碼的分離;
  2. 不同環境使用相同的 class 文件;
  3. 在打包前,需要對配置信息進行修改;
  4. 不同環境所使用的 war 包不同(class 文件相同,但配置文件不同);

采用配置文件 ,我們可以很好地將可變的配置信息與業務代碼進行解耦。

該方案有個缺陷,就是在發布前需要手工修改配置信息。對此,可以借助構建工具的一些功能進行簡化,比如 Maven 的 Filter 功能。

3. 使用 Maven 的 Profile 功能

Maven 的 Profile 功能,可以在打包前完成配置文件的修改。

 

相對之前方案,只是使用構建工具把手工修改升級為自動配置,對整體方案影響不大。

相信,這應該是使用最普遍的一種配置管理策略。但該方案存在一個問題,每個環境使用不同的部署包,結果便是測試使用的部署包與線上使用的并非 100% 相同。

4. 全環境打包結合運行時配置

如何統一各環境使用的部署包呢?

我們可以使用全環境包結合運行時配置的方式達到統一。

 

該策略的特征如下:

  1. 將所有環境的配置文件全部打包到發布包中;
  2. 根據啟動參數自動加載對應環境的配置信息;

通常的做法是在系統啟動時,通過JVM的啟動參數設置系統屬性(如 java -Denv=”dev”),當系統運行時通過 System 的 getProperty (String Key)方法獲取指定的系統屬性值來自動匹配當前環境,并加載配置文件中對應的配置信息,從而避免手動切換。

建議大家在配置文件中預先定義好不同環境所需的配置信息項,并由系統在運行時自動進行匹配和加載。這樣一來,從版本提測到最終測試通過,運維人員便可以直接將測試通過后的版本發布到生產環境中。

5. 集中式配置

在分布式環境中,系統往往都是采用集群部署的,那么集群環境中的每一個節點都持有同一份配置文件,一旦配置信息發生改變,就意味著集群環境中的所有配置文件都需要做出相應的調整。而隨著系統拆分的粒度越來越細,維護成本將會大大提升,并且配置出錯的可能性也隨之增加,因此需要一種集中式配置管理形式,以讓所有的集群節點共享同一份配置信息。

 

該策略有如下幾個特征:

  1. 配置信息存儲于 git 中,以此借助其強大的版本管理功能;
  2. 由配置服務統一為系統提供配置信息;
  3. 各環境通過環境變量指定配置服務的地址;

除此以外,配置服務還提供了很多優勢:

  1. 配置信息統一管理
  2. 動態獲取/更新配置信息
  3. 降低運維人員的維護成本
  4. 降低配置出錯率

這個方案應該是微服務的標配,現在越來越流行開來。

6. 全環境打包結合集中配置

當然,各種配置管理策略并不是水火不容,我們可以將多種策略結合使用,如將環境打包和集中配置結合使用。

 

這樣,我們可以將敏感信息(數據庫連接地址、用戶名、密碼等)存儲在 git 中,進行統一管理;將應用配置存儲與配置文件中,由開發人員進行維護。

7. 小結

配置信息管理是系統平穩運行不可或缺的重要組成部分,不同的管理策略,適應于不同的場景,我們需要熟知各種策略的優缺點,根據自身的情況進行選擇。

切記,沒有最好的方案,只有最適合的方案。

 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2018-01-24 08:11:13

集群信息管理架構設計

2015-06-17 14:18:50

ASP.NET

2013-05-27 10:58:28

Tumblr架構設計雅虎收購

2018-10-09 11:27:24

阿里云ACM

2023-07-05 00:36:38

系統架構設計

2018-09-03 12:39:41

信息架構設計產品

2023-06-12 00:20:42

Go配置管理庫

2010-02-04 16:57:40

Android配置信息

2009-10-29 00:36:50

IBmIOD信息管理

2025-05-09 08:45:13

2025-04-15 04:00:00

2015-06-02 04:17:44

架構設計審架構設計說明書

2023-07-05 08:00:52

MetrAuto系統架構

2013-02-01 10:51:16

2025-05-19 09:17:50

2010-09-06 15:27:50

DB2

2015-06-02 04:34:05

架構設計

2009-12-21 13:27:45

WCF服務配置信息

2010-08-06 14:53:35

思科路由器配置信息
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久久免费看 | 黄色片免费看视频 | 久久一区视频 | 黄色一级片在线播放 | 欧美午夜精品理论片a级按摩 | 99精品亚洲国产精品久久不卡 | www久久久 | 亚洲国产精品久久久久久 | 日本一区二区不卡视频 | 国产专区免费 | 9999精品视频 | 欧美综合一区二区三区 | 欧美一区二区三区视频在线播放 | 一级黄色日本片 | 亚洲日日夜夜 | 久久精品国产亚洲一区二区三区 | 久久久久国产精品 | 99在线精品视频 | 久草成人| jizz视频 | 亚洲综合精品 | 伊人在线视频 | 亚洲欧美一区二区三区国产精品 | 亚洲精品福利视频 | 我要看一级片 | 情侣av| 一区视频在线免费观看 | 91精品国模一区二区三区 | jav成人av免费播放 | 永久免费在线观看 | 999久久久 | 一区二区三区在线免费观看 | 做a视频在线观看 | 免费a国产 | 男人的天堂久久 | 亚洲人成人一区二区在线观看 | 天堂综合网久久 | 羞羞的视频在线看 | 午夜久久久 | av 一区二区三区 | 久久久九九九九 |