溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

apollo如何搭建本地開發(fā)環(huán)境

發(fā)布時間:2021-06-21 14:17:57 來源:億速云 閱讀:452 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“apollo如何搭建本地開發(fā)環(huán)境”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“apollo如何搭建本地開發(fā)環(huán)境”這篇文章吧。

開源配置中心 - Apollo

Apollo(阿波羅)是攜程框架部門研發(fā)的配置管理平臺,能夠集中化管理應用不同環(huán)境、不同集群的配置,配置修改后能夠實時推送到應用端,并且具備規(guī)范的權限、流程治理等特性。服務端基于Spring Boot和Spring Cloud開發(fā),打包后可以直接運行,不需要額外安裝Tomcat等應用容器。

檢出代碼

apollo github

可以fork下然后本地使用idea打開

數(shù)據(jù)庫腳本

執(zhí)行以下腳本創(chuàng)建ApolloConifgDB、ApolloPortalDB

  • apollo.scripts.sql.apolloconfigdb.sql

  • apollo.scripts.sql.apolloportaldb.sql

啟動configservice adminservice

Main class配置

com.ctrip.framework.apollo.assembly.ApolloApplication

VM opions

-Dapollo_profile=github 
-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 
-Dspring.datasource.username=root 
-Dspring.datasource.password=
Program arguments
--configservice --adminservice

啟動完后,打開 http://localhost:8080可以看到apollo-configservice和apollo-adminservice都已經(jīng)啟動完成并注冊到Eureka

啟動Apollo-Portal

Main class配置

com.ctrip.framework.apollo.portal.PortalApplication
-Dapollo_profile=github,auth 
-Ddev_meta=http://localhost:8080/ 
-Dserver.port=8070 
-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8 
-Dspring.datasource.username=root 
-Dspring.datasource.password=

如果啟用了auth profile的話,默認的用戶名是apollo,密碼是admin

應用在SIT、UAT、生產(chǎn)環(huán)境機器上

1.新增目錄/opt/data/目錄,且有可讀寫權限;

2.新增文件:/opt/settings/server.properties 且加入配置:

env=DEV
sit: env=FAT
uat: env=UAT
生產(chǎn):env=PRO

客戶端例子

@Component 設置組件名稱
@RefreshScope 指定配置改變可以刷新
@ConfigurationProperties(prefix = "redis.cache")
@Component("sampleRedisConfig")
@RefreshScope
public class SampleRedisConfig {
 private static final Logger logger = LoggerFactory.getLogger(SampleRedisConfig.class);
 private int expireSeconds;
 private String clusterNodes;
 private int commandTimeout;
 private Map<String, String> someMap = Maps.newLinkedHashMap();
 private List<String> someList = Lists.newLinkedList();
 @PostConstruct
 private void initialize() {
 logger.info(
  "SampleRedisConfig initialized - expireSeconds: {}, clusterNodes: {}, commandTimeout: {}, someMap: {}, someList: {}",
  expireSeconds, clusterNodes, commandTimeout, someMap, someList);
 }
 public void setExpireSeconds(int expireSeconds) {
 this.expireSeconds = expireSeconds;
 }
 public void setClusterNodes(String clusterNodes) {
 this.clusterNodes = clusterNodes;
 }
 public void setCommandTimeout(int commandTimeout) {
 this.commandTimeout = commandTimeout;
 }
 public Map<String, String> getSomeMap() {
 return someMap;
 }
 public List<String> getSomeList() {
 return someList;
 }
 @Override
 public String toString() {
 return String.format(
  "[SampleRedisConfig] expireSeconds: %d, clusterNodes: %s, commandTimeout: %d, someMap: %s, someList: %s",
   expireSeconds, clusterNodes, commandTimeout, someMap, someList);
 }
}

設置監(jiān)聽

@Component
public class SpringBootApolloRefreshConfig {
 private static final Logger logger = LoggerFactory.getLogger(SpringBootApolloRefreshConfig.class);
 @Autowired
 private ApolloRefreshConfig apolloRefreshConfig;
 @Autowired
 private SampleRedisConfig sampleRedisConfig;
 @Autowired
 private RefreshScope refreshScope;
 @ApolloConfigChangeListener
 public void onChange(ConfigChangeEvent changeEvent) {
 logger.info("before refresh {}", sampleRedisConfig.toString());
 refreshScope.refresh("sampleRedisConfig");
 logger.info("after refresh {}", sampleRedisConfig.toString());
 }
}

以上是“apollo如何搭建本地開發(fā)環(huán)境”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI