使用場(chǎng)景
在蘇家屯等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站建設(shè),外貿(mào)營(yíng)銷網(wǎng)站建設(shè),蘇家屯網(wǎng)站建設(shè)費(fèi)用合理。是一個(gè)分布式的配置中心。適用于微服務(wù);
核心功能
開(kāi)發(fā)技術(shù)
概念
縮寫 | 全稱 | 說(shuō)明 |
---|---|---|
FAT | 功能測(cè)試環(huán)境 | |
UAT | 集成測(cè)試環(huán)境 | |
PRO | 生產(chǎn)環(huán)境 | |
DEV | 開(kāi)發(fā)環(huán)境 |
詳細(xì)功能
后臺(tái)界面操作
客戶端接入文檔
公共組件的操作
公共組件: 提供給應(yīng)用使用的其它組織的客戶端代碼,比如cat的客戶端;本質(zhì)上也是應(yīng)用的一部分;
區(qū)別 : 通常情況下,公共組件的使用的配置由原始開(kāi)發(fā)團(tuán)隊(duì)維護(hù),但是實(shí)際的應(yīng)用在運(yùn)行時(shí),環(huán)境不一樣,所以我們也允許應(yīng)用在實(shí)際使用的時(shí)候能夠覆蓋公共組件的部分配置;
需要自己創(chuàng)建自己唯一的namespace ;
公共組件的操作
集群獨(dú)立配置
灰度發(fā)布
操作
要求:jdk1.7+ , guava15.0+
客戶端配置參數(shù)
- app.id (systemProperty > System Environment > springboot application.properties > META-INF/app.properties) 對(duì)應(yīng)項(xiàng)目的id
- apollo.meta 訪問(wèn)地址 (SystemProperty > SpringBoot > SystemEnvironment>/opt/settings/server.properties > app.properties)
- 本地緩存路徑 /opt/data/{appId}/config-cache/ key: apollo.cacheDir
- 環(huán)境配置 key : env
- 集群配置 key: apollo.cluster
客戶端依賴
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.1.0</version>
</dependency>
接入方式對(duì)比
接入方式 | 特點(diǎn) |
---|---|
api | 靈活,功能完備 |
spring | placeholder方式 |
springboot | @ConfigurationProperties |
獲取application namespace配置
Config config = ConfigService.getAppConfig();
//config instance is singleton for each namespace and is never null
String value = config.getProperty(someKey, someDefaultValue);
獲取公共namespace
String somePublicNamespace = "CAT";
Config config = ConfigService.getConfig(somePublicNamespace);
//config instance is singleton for each namespace and is never null
String value = config.getProperty(someKey, someDefaultValue);
獲取非properties格式的namespace配置
Config config = ConfigService.getConfig("application.yml");
String value = config.getProperty(someKey, someDefaultValue);
xml格式文件獲取
String someNamespace = "test";
ConfigFile configFile = ConfigService.getConfigFile("test", ConfigFileFormat.XML);
String content = configFile.getContent();
事件監(jiān)聽(tīng)
Config config = ConfigService.getAppConfig();
//config instance is singleton for each namespace and is never null
config.addChangeListener(new ConfigChangeListener() {
@Override
public void onChange(ConfigChangeEvent changeEvent) {
System.out.println("Changes for namespace " + changeEvent.getNamespace());
for (String key : changeEvent.changedKeys()) {
ConfigChange change = changeEvent.getChange(key);
System.out.println(String.format("Found change - key: %s, oldValue: %s, newValue: %s, changeType: %s", change.getPropertyName(), change.getOldValue(), change.getNewValue(), change.getChangeType()));
}
}
});
基于xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:apollo="http://www.ctrip.com/schema/apollo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.ctrip.com/schema/apollo http://www.ctrip.com/schema/apollo.xsd">
<apollo:config order="2"/>
<!-- 這個(gè)是最復(fù)雜的配置形式,指示Apollo注入FX.apollo和application.yml namespace的配置到Spring環(huán)境中,并且順序在application前面 -->
<apollo:config namespaces="FX.apollo,application.yml" order="1"/>
<bean class="com.ctrip.framework.apollo.spring.TestXmlBean">
<property name="timeout" value="${timeout:100}"/>
基于javaconfig
//這個(gè)是最復(fù)雜的配置形式,指示Apollo注入FX.apollo和application.yml namespace的配置到Spring環(huán)境中,并且順序在application前面
@Configuration
@EnableApolloConfig(order = 2)
public class SomeAppConfig {
@Bean
public TestJavaConfigBean javaConfigBean() {
return new TestJavaConfigBean();
}
}
@Configuration
@EnableApolloConfig(value = {"FX.apollo", "application.yml"}, order = 1)
public class AnotherAppConfig {}
直接配置屬性
#加載應(yīng)用對(duì)應(yīng)的application namespace的配置
apollo.bootstrap.enabled = true
#加載其它namespace 的配置
apollo.bootstrap.namespaces = application,FX.apollo,application.yml
#在日志系統(tǒng)啟動(dòng)之前加載阿波羅
apollo.bootstrap.eagerLoad.enabled=true
一些公共的注解
新增的spring注解
@ApolloJsonValue
用來(lái)把配置的json字符串自動(dòng)注入為對(duì)象
配置的遷移
刪除本地的配置;
增加apollo的xml配置;
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xmlns:apollo="http://www.ctrip.com/schema/apollo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://code.alibabatech.com/schema/dubbo
http://files.sports.lifesense.com/xsd/dubbo.xsd
http://www.ctrip.com/schema/apollo
http://www.ctrip.com/schema/apollo.xsd">
<apollo:config order="1"/>
<apollo:config order="2" namespaces="lx-doctor.redis,lx-doctor.global,lx-doctor.filesystem,lx-doctor.kafka,lx-doctor.dubbo,log4j2.xml"/>
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站標(biāo)題:Apollo的基本概念和集成實(shí)戰(zhàn)-創(chuàng)新互聯(lián)
文章路徑:http://www.rwnh.cn/article38/jcosp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計(jì)、外貿(mào)建站、微信小程序、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容