1. 程式人生 > 其它 >使用Docker搭建Apollo分散式配置中心

使用Docker搭建Apollo分散式配置中心

使用Docker搭建Apollo分散式配置中心

檔案目錄結構

.
└── apollo
    ├── docker-compose.yml
    └── sql
        ├── apolloconfigdb.sql
        └── apolloportaldb.sql

搭建Apollo分散式配置中心

  1. 準備好docker-compose.yml檔案
version: '2'

services:
  apollo-quick-start:
    image: nobodyiam/apollo-quick-start
    container_name: apollo-quick-start
    depends_on:
      - apollo-db
    ports:
      - "18080:8080"
      - "18070:8070"
    links:
      - apollo-db

  apollo-db:
    image: mysql:5.7
    container_name: apollo-db
    environment:
      TZ: Asia/Shanghai
      MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
    depends_on:
      - apollo-dbdata
    ports:
      - "13306:3306"
    volumes:
      - ./sql:/docker-entrypoint-initdb.d
    volumes_from:
      - apollo-dbdata

  apollo-dbdata:
    image: alpine:latest
    container_name: apollo-dbdata
    volumes:
      - /var/lib/mysql
  1. 使用以下命令建立
docker-compose up -d
  1. 關閉防火牆
systemctl status firewalld  #檢視防火牆狀態
systemctl stop firewalld    #關閉防火牆

那兩個db檔案是用來建立配置中心所需的初始化資料的,這個可以到官網下載。

驗證

訪問以下連結,如果出現登入視窗,說明配置成功

http://10.122.52.206:18070/

預設登陸名和密碼:

  • 登入名: apollo

  • 密碼: admin

對接.NET Core Web API

  1. 安裝元件
Com.Ctrip.Framework.Apollo.Configuration

或者直接下面的語句拷貝到專案檔案裡面

<PackageReference Include="Com.Ctrip.Framework.Apollo.Configuration" Version="2.4.1" />
  1. 修改appsettings.json
  "Apollo": {
    "AppId": "xindi-Microservice1",
    "Env": "DEV",
    "MetaServer": "http://10.122.52.206:18080/",
    "ConfigServer": [ "http://10.122.52.206:18080/" ]
  }
  1. 修改program.cs檔案
                .ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) =>
                {
                    LogManager.UseConsoleLogging(Com.Ctrip.Framework.Apollo.Logging.LogLevel.Trace);
                    configurationBuilder
                        .AddApollo(configurationBuilder.Build().GetSection("Apollo"))
                        .AddDefault()
                        .AddNamespace("xindiMsPrivateJson", ConfigFileFormat.Json)//自定義private NameSpace
                        .AddNamespace(ConfigConsts.NamespaceApplication);//Apollo default NameSpace
                })

以上配置表示去連線Apollo,從遠端獲取配置資訊

驗證

可以嘗試修改遠端的配置資訊,然後,在本地獲取,如果獲取到了遠端修改過的資訊,則說明配置成功了。