人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

docker compose 一鍵部署分布式配置中心Apollo的過(guò)程詳解

發(fā)布日期:2021-12-10 15:41 | 文章來(lái)源:源碼之家

簡(jiǎn)介

說(shuō)起分布式肯定要想到分布式配置中心、分布式日志、分布式鏈路追蹤等

在分布式部署中業(yè)務(wù)往往有很多配置比如: 應(yīng)用程序在啟動(dòng)和運(yùn)行時(shí)需要讀取一些配置信息,配置基本上伴隨著應(yīng)用程序的整個(gè)生命周期,比如:數(shù)據(jù)庫(kù)連接參數(shù)、啟動(dòng)參數(shù)等,都需要去維護(hù)和配置,但不可能一臺(tái)臺(tái)服務(wù)器登錄上去配置
今天我要跟大家分享一下分布式配置中心Apollo:

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

搭建

官方文檔中有兩種搭建方式一種是下載源代碼進(jìn)行搭建,一種是使用Docker或者K8S進(jìn)行搭建,今天我們使用Docker來(lái)進(jìn)行搭建,畢竟Docker對(duì)于開(kāi)發(fā)者來(lái)說(shuō)更友好一些。

如果已有Mysql服務(wù),推薦已有Mysql服務(wù)或者云服務(wù)RDS來(lái)當(dāng)數(shù)據(jù)庫(kù)使用,畢竟數(shù)據(jù)無(wú)價(jià)。

version: "3"
services:
  apollo-configservice: #Config Service提供配置的讀取、推送等功能,服務(wù)對(duì)象是Apollo客戶端
    image: apolloconfig/apollo-configservice:1.8.1
    restart: always
    #container_name: apollo-configservice
    volumes:
          - ./logs/apollo-configservice:/opt/logs
    ports:
      - "8080:8080"
    environment:
      - TZ='Asia/Shanghai'    
      - SERVER_PORT=8080
      - EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx
      - EUREKA_INSTANCE_HOME_PAGE_URL=http://xxx.xxx.xxx.xxx:8080
      - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=MysqkPassWord!
      
      
  apollo-adminservice: #Admin Service提供配置的修改、發(fā)布等功能,服務(wù)對(duì)象是Apollo Portal(管理界面)
    image: apolloconfig/apollo-adminservice:1.8.1
    restart: always
    #container_name: apollo-adminservice
    volumes:
      - ./logs/apollo-adminservice:/opt/logs
    ports:
      - "8090:8090"
    depends_on:
      - apollo-configservice
    environment:
      - TZ='Asia/Shanghai'    
      - SERVER_PORT=8090
      - EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx
      - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=MysqkPassWord!
      
      
  apollo-portal: #管理界面
    image: apolloconfig/apollo-portal:1.8.1
    restart: always
    container_name: apollo-portal
    volumes:
      - ./logs/apollo-portal:/opt/logs
    ports:
      - "8070:8070"
    depends_on:
      - apollo-adminservice
    environment:
      - TZ='Asia/Shanghai'    
      - SERVER_PORT=8070
      - EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx
      - APOLLO_PORTAL_ENVS=dev
      - DEV_META=http://xxx.xxx.xxx.xxx:8080
      - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=MysqkPassWord!

從以上docker-compose.yaml中可以看出共包含3個(gè)服務(wù),分別為:

  1. Config Service提供配置的讀取、推送等功能,服務(wù)對(duì)象是Apollo客戶端
  2. Admin Service提供配置的修改、發(fā)布等功能,服務(wù)對(duì)象是Apollo Portal(管理界面)
  3. Portal(管理界面)

如果想了解它們之間的運(yùn)行方式推薦查看官方文檔

日志掛載到外部./logs目錄下

大家可以看到上方并沒(méi)有給出Mysql的部署,如果需要使用容器部署Mysql可以參照下方docker-compose.yaml

version: '3'
services: 
  mysql: # myslq 數(shù)據(jù)庫(kù)
    image: 'mysql/mysql-server'
    container_name: 'mysql'
    restart: always
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower-case-table-names=1
    environment: #環(huán)境變量
      MYSQL_ROOT_HOST: "%" 
      MYSQL_ROOT_PASSWORD: password
      MYSQL_USER: brook
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"

上述mysql的docker-compose.yaml 僅供測(cè)試使用

初始化數(shù)據(jù)庫(kù)
初始化 apolloconfigdb.sql 和 apolloportaldb.sql

數(shù)據(jù)庫(kù)初始化后,記得修改apolloconfigdb庫(kù)中serverconfig表的 eureka.service.url 否則 apollo-adminservice無(wú)法注冊(cè)到eureka

修改后切換到Apollo docker-compose.yaml目錄 然后使用

docker-compose up -d #啟動(dòng)文件中的三個(gè)服務(wù)并且后臺(tái)運(yùn)行

查看啟動(dòng)情況

docker-compose ps

訪問(wèn) http://10.0.0.53:8070/ #Apollo管理端

默認(rèn)用戶名:apollo
默認(rèn)密碼:admin

創(chuàng)建一個(gè)測(cè)試項(xiàng)目


測(cè)試

創(chuàng)建一個(gè).NetCore項(xiàng)目 添加Apollo.net client

添加Apollo

配置Apollo

配置如上

添加測(cè)試內(nèi)容
代碼中獲取Apollo

啟動(dòng)程序 請(qǐng)求/weatherforecast/apollotest

發(fā)現(xiàn)并未獲取到apollo中設(shè)置的配置

檢查Apollo發(fā)現(xiàn)配置的值并沒(méi)有發(fā)布

所以大家配置或者修改了Apollo一定記得發(fā)布,我們發(fā)布后再次刷新瀏覽器

發(fā)現(xiàn)數(shù)據(jù)已經(jīng)是新的數(shù)據(jù)了,我們?cè)俅涡薷囊幌翧pollo的Value

刷新

致此 Apollo已經(jīng)搭建完畢并且可以正常使用了

代碼

示例中的代碼在
https://github.com/yuefengkai/Brook.Apollo
歡迎大家Start

注意如果程序啟動(dòng)后無(wú)法拉取配置,可以打開(kāi)Apollo的日志,在控制臺(tái)中可以看到詳細(xì)的配置 放到Program.cs Main函數(shù)第一行即可!

LogManager.UseConsoleLogging(Com.Ctrip.Framework.Apollo.Logging.LogLevel.Trace);

參考

1.https://github.com/apolloconfig/apollo.net
2.https://github.com/apolloconfig/apollo
3.https://github.com/apolloconfig/apollo/tree/master/scripts/docker-quick-start

到此這篇關(guān)于docker compose 一鍵部署分布式配置中心Apollo的文章就介紹到這了,更多相關(guān)docker compose部署分布式配置中心Apollo內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部