真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

基于Spring的應(yīng)用配置怎么遷移至阿里云應(yīng)用配置管理ACM

今天就跟大家聊聊有關(guān)基于Spring的應(yīng)用配置怎么遷移至阿里云應(yīng)用配置管理ACM ,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

公司主營業(yè)務(wù):成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出晉中免費(fèi)做網(wǎng)站回饋大家。

最近遇到一些開發(fā)者朋友,準(zhǔn)備將原有的Java Spring的應(yīng)用配置遷移到 阿里云應(yīng)用配置管理 ACM 中。遷移過程中,遇到不少有趣的問題。本文將通過一個(gè)簡單的樣例來還原遷移過程中遇到的問題和相關(guān)解決思路,以期達(dá)到和讀者交流的目的。

什么樣的配置適合進(jìn)入配置中心

這是所有準(zhǔn)備遷移配置到配置中心的用戶遇到的第一個(gè)問題。我們將從時(shí)效性和安全這兩個(gè)維度進(jìn)行分析。

基于Spring的應(yīng)用配置怎么遷移至阿里云應(yīng)用配置管理ACMcdn.com/f174d13b6c9cc95a55d423df21d1349d69518790.png">

時(shí)效性:靜態(tài) VS 動(dòng)態(tài)

靜態(tài)配置是指程序版本一旦發(fā)布,基本上不會(huì)修改的配置內(nèi)容,例如:

  • 軟件版本號(hào):顯然版本號(hào)一經(jīng)確定,產(chǎn)品基本上不需要改。

  • 日志樣式:日志的layout,如時(shí)間戳,文件名,日志級(jí)別等排版,基本上也不需要大改。

  • 三方軟件LicenseKey:基本上也是一經(jīng)發(fā)布,很少變化。不排除中途三方軟件License升級(jí),但是這種升級(jí)一般都可以根據(jù)軟件重新發(fā)版來解決配置變更。

  • PaaS平臺(tái)連接串:如數(shù)據(jù)庫連接串,中間包含數(shù)據(jù)庫,用戶名和密碼等。除非因?yàn)楹弦?guī)原因修改密碼,或者數(shù)據(jù)發(fā)生遷移等,否則也是很少變化。

動(dòng)態(tài)配置是指程序運(yùn)行時(shí)的一些配置變化,通常會(huì)影響到程序的一些運(yùn)行行為,例如:

  • 限流降級(jí)參數(shù):限流降級(jí)參數(shù)一般都不太固定。系統(tǒng)一般在運(yùn)行時(shí)最好是需要根據(jù)實(shí)際workload pattern來動(dòng)態(tài)調(diào)節(jié)限流參數(shù)如閾值RT,峰值TPS,等。

  • 監(jiān)控報(bào)警閾值:如交易環(huán)比下跌20%產(chǎn)生error報(bào)警,下跌50%產(chǎn)生critical報(bào)警。 對(duì)于監(jiān)控系統(tǒng)來講,線上業(yè)務(wù)特征由于變化比較頻繁,因此一般也不將報(bào)警的閾值寫死,

  • 日志打印級(jí)別:線上一旦出現(xiàn)詭異的行為,希望吧日志打印級(jí)別從error比如調(diào)高到debug,一般都比較希望能動(dòng)態(tài)的去調(diào)整,而不需要重啟應(yīng)用。

  • 容災(zāi)多活:一旦站點(diǎn)反生災(zāi)難,一定是希望切換是越快越好。因此配置必須動(dòng)態(tài)秒級(jí)生效,盡可能降低資損。

從時(shí)效性的維度來講,一般建議用戶把靜態(tài)配置存放到自己文件中,盡可能保持簡單,但是需要把動(dòng)態(tài)配置放到配置中心里,以加強(qiáng)靈活性和應(yīng)用動(dòng)態(tài)變更的實(shí)效性。

安全:非敏感 VS 敏感

非敏感配置一般指偏向技術(shù)類,暴露后不會(huì)導(dǎo)致配置上的安全隱患,例如:

  • 軟件版本號(hào):跟產(chǎn)品迭代相關(guān),無業(yè)務(wù)屬性,非敏感配置。

  • 日志樣式:一般跟程序事后診斷相關(guān),非敏感配置。

  • 日志打印級(jí)別:影響日志打印的多或少,非敏感配置。

  • 限流降級(jí)參數(shù):限流降級(jí)主要為維持內(nèi)部應(yīng)用穩(wěn)定,非敏感配置。

  • 監(jiān)控報(bào)警閾值:主要是影響業(yè)務(wù)的報(bào)警精度,非敏感配置。

  • 容災(zāi)多活:一般和數(shù)據(jù)主備配置和業(yè)務(wù)分片相關(guān),非敏感配置。

敏感配置通常和業(yè)務(wù)數(shù)據(jù)相關(guān),一旦泄露將引起安全隱患,例如:

  • 三方軟件LicenseKey:一旦泄露容易發(fā)生LicenseKey被盜用,為敏感配置。

  • PaaS平臺(tái)連接串:典型如數(shù)據(jù)庫連接串,一旦泄露,無論內(nèi)部或外部用戶,都可以很容易地登到業(yè)務(wù)數(shù)據(jù)庫接觸到業(yè)務(wù)敏感信息,為敏感配置。

從安全的維度來看,我們通常建議用戶把非敏感配置存放到自己的文件中,盡可能保持簡單,但是需要把敏感配置放到配置中心里,并加密且做好鑒權(quán),盡量不要讓無關(guān)人員接觸到。

時(shí)效性和安全分析總結(jié)

基于 Spring 框架的Java應(yīng)用配置如何遷移

使用Spring框架的Java開發(fā)者一般經(jīng)常用到的一種配置注解姿勢(shì)是利用Spring的@value注解。

原始的純靜態(tài)文件場(chǎng)景

例如這個(gè)配置,包含兩個(gè)配置參數(shù),一個(gè)是軟件的版本號(hào),一個(gè)是數(shù)據(jù)庫連接串:

基于Spring的應(yīng)用配置怎么遷移至阿里云應(yīng)用配置管理ACM

通過@PropertySource和@value的注解來自動(dòng)注入配置。

@Configuration
@ComponentScan("com.alibaba")
@PropertySource("classpath:myApp.properties")
  public class AppConfig {

  @Value(value="${url}")
  private String URL;
  @Value(value="${dbuser}")
  private String USER;
  @Value(value="${driver}")
  private String DRIVER;
  @Value(value="${dbpassword}")
  private String PASSWORD;

  @Value(value="${appVersion}")
  private String version;
}

以上代碼省略了相關(guān)數(shù)據(jù)庫連接初始化等操作。

開始配置遷移,進(jìn)入混合配置場(chǎng)景

目前由于安全合規(guī)或配置時(shí)效等原因,要開始遷移配置到ACM上。經(jīng)過分析,我們發(fā)現(xiàn)部分?jǐn)?shù)據(jù)庫的配置最好遷移到ACM,以紅色字體標(biāo)注。紅色部分將全部被遷移到ACM中。

接下來主要三個(gè)改動(dòng),先歸納下。

  • 在ACM控制臺(tái)種增加相關(guān)配置的記錄。

  • Java工程包中增加 ACM SDK 相關(guān)依賴。

  • 少許修改代碼,增加在ACM中取配置的注解代碼。

第一步,直接到ACM中創(chuàng)建配置項(xiàng),名字為myapp.dbconfig.properties,并把配置內(nèi)容編輯在對(duì)應(yīng)編輯框中。

第二步,在maven的pom.xml中增加依賴,如下。

   
   
    com.alibaba.nacos 
    nacos-spring-context 
    0.2.1- RC1 
  

第三步,在對(duì)應(yīng)AppConfig.java代碼中植入API注解,通過ACM去獲取動(dòng)態(tài)配置。代碼增加部分如紅色字體部分。

  @Configuration @ComponentScan("com.journaldev") 
  @PropertySource("classpath:myApp.properties") 
  @EnableNacosConfig(globalProperties = 
  @NacosProperties(endpoint = "acm.aliyun.com", namespace = "xxx", accessKey = "xxx", secretKey = "xxx")) 
  @NacosPropertySource(dataId = "myApp.dbconfig.properties", autoRefreshed = true) public class AppConfig { 
  @Value(value="${url}") private String URL; 
  @Value(value="${dbuser}") private String USER; 
  @Value(value="${driver}") private String DRIVER; 
  @Value(value="${dbpassword}") private String PASSWORD; 

  @Value(value="${appVersion}") 
  private String version; public String getVersion() { 
      return version; 
  }
}

至此,改動(dòng)結(jié)束。通過ACM SDK支持Spring的@value注解能力,代碼幾乎0改動(dòng)。

幾點(diǎn)注意事項(xiàng)

在以上代碼實(shí)例中,有幾樣事情需要注意:

  • 代碼中使用的ACM SDK為Nacos SDK。Nacos (http://nacos.io) 為ACM的開源實(shí)現(xiàn),ACM無縫兼容所有Nacos的接口。

  • 在代碼示例中,使用了明文注解來寫死ACM的endpoint, namespace, AK, SK, 等等。在實(shí)際操作種,相關(guān)變量其實(shí)不用寫死。

看完上述內(nèi)容,你們對(duì)基于Spring的應(yīng)用配置怎么遷移至阿里云應(yīng)用配置管理ACM 有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


分享題目:基于Spring的應(yīng)用配置怎么遷移至阿里云應(yīng)用配置管理ACM
瀏覽地址:http://weahome.cn/article/ipphco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部