使用Docker搭建Apollo分布式配置中心
文件目录结构
.
└── apollo
├── docker-compose.yml
└── sql
├── apolloconfigdb.sql
└── apolloportaldb.sql
搭建Apollo分布式配置中心
- 准备好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
- 使用以下命令创建
docker-compose up -d
- 关闭防火墙
systemctl status firewalld #查看防火墙状态
systemctl stop firewalld #关闭防火墙
那两个db文件是用来创建配置中心所需的初始化数据的,这个可以到官网下载。
验证
访问以下链接,如果出现登录窗口,说明配置成功
默认登陆名和密码:
-
登录名: apollo
-
密码: admin
对接.NET Core Web API
- 安装组件
Com.Ctrip.Framework.Apollo.Configuration
或者直接下面的语句拷贝到项目文件里面
<PackageReference Include="Com.Ctrip.Framework.Apollo.Configuration" Version="2.4.1" />
- 修改appsettings.json
"Apollo": {
"AppId": "xindi-Microservice1",
"Env": "DEV",
"MetaServer": "http://10.122.52.206:18080/",
"ConfigServer": [ "http://10.122.52.206:18080/" ]
}
- 修改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,从远程获取配置信息
验证
可以尝试修改远程的配置信息,然后,在本地获取,如果获取到了远程修改过的信息,则说明配置成功了。