使用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,从远程获取配置信息

验证

可以尝试修改远程的配置信息,然后,在本地获取,如果获取到了远程修改过的信息,则说明配置成功了。

原文地址:https://www.cnblogs.com/Dannier/p/14900214.html