apollo攜程框架搭建部署細(xì)節(jié)

Apollo框架的使用和簡(jiǎn)單介紹

Apollo(阿波羅)是攜程框架部門(mén)研發(fā)的分布式配置中心晦鞋,能夠集中化管理應(yīng)用不同環(huán)境得糜、不同集群的配置载绿,配置修改后能夠?qū)崟r(shí)推送到應(yīng)用端床蜘,并且具備規(guī)范的權(quán)限辙培、流程治理等特性,適用于微服務(wù)配置管理場(chǎng)景

github地址:

https://github.com/ctripcorp/apollo

本地快速部署Quick Start邢锯,只適合效果預(yù)演扬蕊,無(wú)法根據(jù)項(xiàng)目需求更改配置,詳細(xì)了解分布式配置

https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97

Apollo配置中心介紹

https://github.com/ctripcorp/apollo/wiki/Apollo%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83%E4%BB%8B%E7%BB%8D

部署安裝請(qǐng)搜索關(guān)鍵字:Apollo分布式配置中心部署以及使用

1. 使用:

git clone https://github.com/ctripcorp/apollo.git

比較重要的幾個(gè)項(xiàng)目:

  • apollo-configservice:提供配置獲取接口丹擎,提供配置更新推送接口尾抑,接口服務(wù)對(duì)象為Apollo客戶(hù)端

  • apollo-adminservice:提供配置管理接口,提供配置修改蒂培、發(fā)布等接口再愈,接口服務(wù)對(duì)象為Portal,以及Eureka

  • apollo-portal:提供Web界面供用戶(hù)管理配置

  • apollo-client:Apollo提供的客戶(hù)端程序护戳,為應(yīng)用提供配置獲取践磅、實(shí)時(shí)更新等功能

流程圖

2. 數(shù)據(jù)庫(kù)初始化(!mysql要在5.6以上,定位問(wèn)題在于TimeStamp在5.6以下唯一)

下面的sql為大寫(xiě)格式灸异,注意數(shù)據(jù)庫(kù)的大小寫(xiě)敏感設(shè)置

ApolloPortalDB:執(zhí)行apollo\scripts\sql\apolloportaldb.sql

ApolloConfigDB:DEV FAT UAT PRO 環(huán)境執(zhí)行apollo\scripts\sql\apolloconfigdb.sql

要在apollo-configservice府适,apollo-adminservice,apollo-portal中的application.yml中配置數(shù)據(jù)庫(kù)信息:


# apollo-configservice肺樟,apollo-adminservice

spring:

datasource:

url: jdbc:mysql://localhost:3306/ApolloConfigDBcharacterEncoding=utf8

username:

password:

driver-class-name: com.mysql.jdbc.Driver

# apollo-portal

spring:

datasource:

url: jdbc:mysql://localhost:3306/ApolloPortalDBcharacterEncoding=utf8

username:

password:

driver-class-name: com.mysql.jdbc.Driver

3. 修改環(huán)境調(diào)用地址


# meta server url, different environments should have different meta server addresses

dev_meta=http://localhost:8080

fat_meta=http://192.168.35.208:9100

uat_meta=http://192.168.35.209:9100

pro_meta=http://192.168.35.210:9100

4. 修改數(shù)據(jù)庫(kù)數(shù)據(jù)

在DEV FAT UAT PRO 對(duì)應(yīng)的ApolloConfigDB數(shù)據(jù)庫(kù)中,找到表ServerConfig中的eureka.service.url配置項(xiàng):


UPDATE apolloconfigdb.ServerConfig SET ServerConfig.`Value`='http://localhost:9100/eureka/' WHERE `Key`='eureka.service.url';

現(xiàn)在已經(jīng)可以運(yùn)行項(xiàng)目了,若缺失jar可一一補(bǔ)齊


如需部署在服務(wù)器

可進(jìn)入scripts/下運(yùn)行build.bat或./build.sh

該腳本會(huì)依次打包apollo-configservice, apollo-adminservice, apollo-portal和apollo-client檐春。

由于ApolloConfigDB在每個(gè)環(huán)境都有部署,所以對(duì)不同環(huán)境的config-service和admin-service需要使用不同的數(shù)據(jù)庫(kù)連接信息打不同的包么伯,portal和client只需要打一次包即可

將壓縮包上傳至服務(wù)器解壓

修改scripts/startup.sh :

LOG_DIR=/opt/logs/100003171 //日志路徑

SERVER_PORT=9100 //服務(wù)端口

執(zhí)行scripts/startup.sh即可

如需停止服務(wù)疟暖,執(zhí)行scripts/shutdown.sh.

登錄,默認(rèn)用戶(hù)名密碼為:apollo/admin

5. 踩坑細(xì)節(jié):

  1. core和client要打包成jar放到項(xiàng)目中

  2. 先開(kāi)configservice,然后adminservice俐巴,最后portal

  3. configservice和adminservice打包上傳服務(wù)器時(shí)骨望,一個(gè)環(huán)境對(duì)應(yīng)一份

  4. 修改configserver表里的eureka,把注冊(cè)中心定向到內(nèi)網(wǎng)中的eureka

UPDATE apolloconfigdb.ServerConfig SET ServerConfig.Value='http://localhost:9100/eureka/' WHERE Key='eureka.service.url';

  1. 在yml配置文件中寫(xiě)上app.id=xxxxxx欣舵,此處為字符串擎鸠,要和apollo配置中心對(duì)應(yīng)項(xiàng)目的appID相同

然后寫(xiě)上apoll.meta=http://localhost:8080 定向到Configserver服務(wù)


  1. 整合項(xiàng)目時(shí)

6.1. 將core和client的依賴(lài)引入pom,在程序啟動(dòng)類(lèi)上加上注解@EnableApolloConfig缘圈,創(chuàng)建一個(gè)配置類(lèi)加上注解@component劣光,在給靜態(tài)變量賦值的set方法上加上

@value("${xxx}),將變量申明為pubilc糟把,之后可使用 配置類(lèi).靜態(tài)變量直接訪(fǎng)問(wèn),詳細(xì)看例子


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <dependencies>

    <!--Apollo相關(guān)-->

        <dependency>

            <groupId>com.ctrip.framework.apollo</groupId>

            <artifactId>apollo-client</artifactId>

            <version>1.5.0-SNAPSHOT</version>

        </dependency>

        <dependency>

            <groupId>com.ctrip.framework.apollo</groupId>

            <artifactId>apollo-core</artifactId>

            <version>1.5.0-SNAPSHOT</version>

        </dependency>

    </dependencies>

</project>


// @Component注解表明一個(gè)類(lèi)會(huì)作為組件類(lèi)绢涡,并告知Spring要為這個(gè)類(lèi)創(chuàng)建bean。

// @Bean注解告訴Spring這個(gè)方法將會(huì)返回一個(gè)對(duì)象遣疯,這個(gè)對(duì)象要注冊(cè)為Spring應(yīng)用上下文中的bean雄可。通常方法體中包含了最終產(chǎn)生bean實(shí)例的邏輯。

@Component

public class Config {

    @Value("${server.port}")

    public void setPort(String port) {

        Config.port = port;

    }

    @Value("${spring.application.name:apollo}")

    public void setName(String name) {

        Config.name = name;

    }

    public static String port;

    public static String name;

}


public class a{

    //要使用Config配置類(lèi)的屬性可以采用

    System.out.println(Config.port+","+Config.name);

}

6.2 將程序注冊(cè)到內(nèi)網(wǎng)的服務(wù)中心缠犀,添加pom依賴(lài)滞项,如下,在啟動(dòng)類(lèi)上添加@EnableEurekaClient,yml添加eureka的配置


//Eureka相關(guān)

      <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-netflix-eureka- server</artifactId>

      </dependency>


eureka:

  client:

  serviceUrl:

defaultZone: http://localhost:8080/Eureka

    register-with-eureka: false

    fetch-registry: false


  1. 部署到服務(wù)器上夭坪,修改各自解壓包下的config/application-github.properties,配置數(shù)據(jù)庫(kù)

  2. 執(zhí)行各自解壓包下的scripts/startup.sh運(yùn)行服務(wù)文判,對(duì)應(yīng)的shutdown.sh為關(guān)閉服務(wù)

  3. 現(xiàn)在部署情況是虛擬機(jī)部署服務(wù),鏈接服務(wù)器的數(shù)據(jù)庫(kù)室梅,開(kāi)放端口給本機(jī)上web

9.1 過(guò)程中防火墻需要開(kāi)放端口戏仓,三個(gè)需要在同一網(wǎng)段,虛擬機(jī)使用橋接模式

9.2 vi etc/sysconfig/network-scripts/ifcfg-enp0s3 具體路徑要仔細(xì)看

9.3 執(zhí)行服務(wù)指令 ./config/scripts/startup.sh

./admin/scripts/startup.sh

./protal/scripts/startup.sh
  1. 上傳到服務(wù)器時(shí)亡鼠,注意配置信息(數(shù)據(jù)庫(kù)配置赏殃,端口號(hào)配置,日志文件位置配置)间涵,端口號(hào)寫(xiě)死在startup.sh腳本里仁热,注意修改portal里的dev.meta的環(huán)境為你的configservice的ip:端口號(hào)

參考文檔:

Apollo分布式配置中心部署以及使用

apollo配置中心部署到使用的心得總結(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者勾哩。
  • 序言:七十年代末抗蠢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子思劳,更是在濱河造成了極大的恐慌迅矛,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潜叛,死亡現(xiàn)場(chǎng)離奇詭異秽褒,居然都是意外死亡壶硅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)销斟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)庐椒,“玉大人,你說(shuō)我怎么就攤上這事蚂踊≡继福” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵悴势,是天一觀(guān)的道長(zhǎng)窗宇。 經(jīng)常有香客問(wèn)我措伐,道長(zhǎng)特纤,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任侥加,我火速辦了婚禮捧存,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘担败。我一直安慰自己昔穴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布提前。 她就那樣靜靜地躺著吗货,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狈网。 梳的紋絲不亂的頭發(fā)上宙搬,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音拓哺,去河邊找鬼勇垛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛士鸥,可吹牛的內(nèi)容都是我干的闲孤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼烤礁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼讼积!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起脚仔,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤币砂,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后玻侥,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體决摧,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掌桩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片边锁。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖波岛,靈堂內(nèi)的尸體忽然破棺而出茅坛,到底是詐尸還是另有隱情,我是刑警寧澤则拷,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布贡蓖,位于F島的核電站,受9級(jí)特大地震影響煌茬,放射性物質(zhì)發(fā)生泄漏斥铺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一坛善、第九天 我趴在偏房一處隱蔽的房頂上張望晾蜘。 院中可真熱鬧,春花似錦眠屎、人聲如沸剔交。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)岖常。三九已至,卻和暖如春葫督,著一層夾襖步出監(jiān)牢的瞬間竭鞍,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工候衍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笼蛛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓蛉鹿,卻偏偏與公主長(zhǎng)得像滨砍,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妖异,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354