這篇文章主要講解了“高效率配置管理的方法有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“高效率配置管理的方法有哪些”吧!
在西峽等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作 網(wǎng)站設(shè)計制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營銷,成都外貿(mào)網(wǎng)站制作,西峽網(wǎng)站建設(shè)費用合理。
好的配置管理 是部署的第一步。
通常,應(yīng)用的 配置 在不同 部署 (預(yù)發(fā)布、生產(chǎn)環(huán)境、開發(fā)環(huán)境等等)間會有很大差異
這其中包括:
數(shù)據(jù)庫,redis,以及其他 后端服務(wù) 的配置
第三方服務(wù)的Key,如 存儲、推送等
每份部署特有的配置,如域名等
一份基準代碼,多份部署,在環(huán)境中存儲配置
配置文件隨著納入版本控制系統(tǒng)提交,引起多個版本 Profile
管理。
統(tǒng)一管理
如果不統(tǒng)一管理,需要在多處修改配置,容易造成遺忘,也增加學(xué)習(xí)成本。
密鑰(配置)安全
判斷一個應(yīng)用是否正確地將配置排除在代碼之外,一個簡單的方法是看該應(yīng)用的基準代碼是否可以立刻開源,而不用擔(dān)心會暴露任何敏感的信息。
方案 | 理由 | 可行性 |
---|---|---|
Configuration 代碼文件 | 代碼和配置混在一起,打包后,無法適配多個部署環(huán)境。 | × |
配置文件 | 例如 Spring-boot . profile 管理, node.js 的 .env | √ |
基于數(shù)據(jù)庫管理 | 非常適用于第三方 key 的配置,內(nèi)部配置 并不便捷 | √ |
基于配置服務(wù) | Spring Cloud Config , nacos 等配置服務(wù) | √ |
Spring-boot 應(yīng)用配置管理方案(優(yōu)化版)
鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)
配置 Application.yml
配置DB 連接的環(huán)境變量 覆蓋 原Application.yml 的數(shù)據(jù)庫連接變量。
摘自: 12-Factor推薦將應(yīng)用的配置存儲于 環(huán)境變量 中( env vars, env )。環(huán)境變量可以非常方便地在不同的部署間做修改,卻不動一行代碼;與配置文件不同,不小心把它們簽入代碼庫的概率微乎其微;與一些傳統(tǒng)的解決配置問題的機制(比如 Java 的屬性配置文件)相比,環(huán)境變量與語言和系統(tǒng)無關(guān)。
鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)
基于數(shù)據(jù)庫管理(jm-settings)
2.1 設(shè)計 Key-Value 表
CREATE TABLE `t_base_settings` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `keyword` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '關(guān)鍵詞, PAY.ALI PAY.MP', `content` text COLLATE utf8mb4_unicode_ci COMMENT '配置內(nèi)容', `created` bigint(20) DEFAULT NULL, `updated` bigint(20) DEFAULT NULL, `deleted` int(1) DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='設(shè)置表';
2.2 Spring-boot @Bean 注入
聲明 Property
/** * 華為 OBS 配置 * @author <a href="https://github.com/keepcleargas/">keepcleargas</a> * @version 1.0 Created in 2021/03/23 10:56 */ @Data public class HuaweiObsProperties { public static final String KEY = "huawei.obs"; private String accessKey; private String secretKey; private String endPoint; /** * 失效時間(分鐘) */ private Long duration = 3600L; /** * buckets */ private List<Bucket> buckets; @Data public static final class Bucket { private Integer type; private String bucketName; } @JsonIgnore public String getBucketNameByType(Integer type) { for (Bucket bucket : buckets) { if (type.equals(bucket.getType())) { return bucket.getBucketName(); } } throw new IllegalArgumentException("Bucket配置不全!"); } }
Bean
注入類
/** * HuaweiObsProperties Bean 配置類 * @author <a href="https://github.com/keepcleargas/">keepcleargas</a> * @version 1.0 Created in 2021/03/23 11:01 */ @Slf4j @Configuration public class HuaweiObsConfiguration { @Resource BaseSettingsService baseSettingsService; @Bean(name = "huaweiObsProperties") public HuaweiObsProperties getHuaweiObsProperties() { HuaweiObsProperties huaweiObsProperties = baseSettingsService.getObjectByKeyword(HuaweiObsProperties.KEY, HuaweiObsProperties.class); return huaweiObsProperties == null ? new HuaweiObsProperties() : huaweiObsProperties; } }
Bean
注入使用
@Slf4j @Service public class HuaweiObsService { @Resource HuaweiObsProperties huaweiObsProperties; //todo 調(diào)用即可 }
項目名 | 描述 | 地址 |
---|---|---|
jm-settings | 基于 DB 的配置管理核心庫 | https://github.com/jimoos-cn/... |
huawei-obs | 基于 jm-settings 實現(xiàn)的華為obs 配置管理 | https://github.com/jimoos-cn/... |
感謝各位的閱讀,以上就是“高效率配置管理的方法有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對高效率配置管理的方法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
網(wǎng)頁名稱:高效率配置管理的方法有哪些
路徑分享:http://sd-ha.com/article42/jgspec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、App設(shè)計、外貿(mào)網(wǎng)站建設(shè)、域名注冊、自適應(yīng)網(wǎng)站、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)