
8. .NET5微服务中的Apollo配置
获取源码: 从GitHub下载 Apollo 源码包,解压后找到具体部署目录。 启动 Docker: 使用 docker-compose 启动 Apache for Apollo。 检查镜像: 下载完毕后,执行 docker images 查看镜像状态。 查看容器状态: 用 docker ps -a 查看所有容器状态,确认运行正常。 **配置端口:
发布日期:2021-05-10 05:01:33
浏览次数:27
分类:精选文章
本文共 1615 字,大约阅读时间需要 5 分钟。
Apollo配置管理平台简要指南
Apollo 是携程框架部门研发的配置管理平台,旨在帮助开发者高效统一管理微服务程序中的配置项。随着系统模块化和依赖项增加,配置管理是一个逐渐复杂的任务。通过 Apollo,可以集中化管理不同环境、不同集群的配置,并实现实时配置推送,这大大提升了系统维护效率。
Apollo的功能
解决的痛点
- 配置管理复杂性: 随着中间件和服务数量增加,配置项呈指数级增长,如何统一管理成为难题。
- 动态配置推送: 当配置修改时,希望能够快速生效,而不是 manual restart 或 redeploy。
- 权限与流程控制: 配置修改需遵循规范权限和流程,确保维护安全和规范。
功能亮点
- 集中管理: 将所有环境的配置集中管理,简化升级流程。
- 实时推送: 修改配置后直接向应用端推送,减少需要 humans review 的时间。
- 统一规范: 支持权限控制、审批流程,确保配置变更合规。
Apollo 安装与部署
序言
Apollo 的部署需注意环境配置,推荐使用 Docker 一键部署方案,降低部署复杂度。
使用 Docker 部署
docker-compose up
- 8070:后台管理系统地址。
- 8080:外部服务接口端口。
登录与使用
- 初次登录: 使用账户ukesm-p@Ctrip /apollo 登录系统。
- 创建项目: 初始化项目前需设置 AppId,作为项目唯一标识。
- 配置项管理: 将数据库连接字符串等配置项统一存储于 Apollo,方便后续管理和版本控制。
.NET5 接入 Apollo
配置 NuGet 包
在项目中添加参考,确保版本兼容:
配置 appsettings.json
在项目根目录添加:
"Apollo": { "AppId": "你的项目ID", "Env": "开发环境标识", "MetaServer": "http://localhost:8080", "ConfigServer": ["http://localhost:8080"]}
修改 Program.cs
在 IHostBuilder 中配置 Apollo:
Host.CreateDefaultBuilder(args).ConfigureAppConfiguration((hostingContext, builder) =>{ builder.AddApollo(builder.Build().GetSection("Apollo")) .AddDefault();})
操作示例
- 数据库配置: 通reau 取值方式演变:
//旧写法options.UseMySQL(Configuration.GetConnectionString("Mysql"));//新写法options.UseMySQL(Configuration.GetValue
("MysqlConnectionString"));
注意事项
- 配置结果 cache: 确保缓存机制与 Apollo 配置管理兼容。
- 安全权限: 确保使用适当的权限级别,避免敏感配置暴露。
- 测试环境配置: 建议在各个环境(DEV, TEST, PROD)中分别配置 Apollo 项目参数。
以上只是 Apollo 使用的一个常见场景,具体使用可按需扩展配置,详细文档可参考 GitHub仓库或官方文档。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年05月03日 20时37分57秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Thymeleaf 生成下标,索引,使用Stat变量
2019-03-13
全局变量初始化顺序的不确定性引发的bug
2019-03-13
ValueError: Unexpected end of file.
2019-03-13
六、登录(二)
2019-03-13
初始微服务---Springcloud发展【第一期】
2019-03-13
RAFT 拜占庭将军 共识算法
2019-03-13
UE4 错误列表 error码(只记录我遇到的情况,持续添加,未完成)
2019-03-13
【Jquery】获取当前窗口的宽度值/高度值
2019-03-13
Android 架构组件 – 让天下没有难做的 App
2019-03-13
启动MongoDB出现1053错误
2019-03-13
网络对抗技术-Exp2-后门原理与实践 20181314
2019-03-13
能解决数据可视化大屏需求的3款可视化工具
2019-03-13
欢迎来到小迪博客
2019-03-13
【Altium Designer21】工作栏中文解析
2019-03-13
[87]用secureCRT连接虚拟机中的Ubuntu系统,出现“远程主机拒绝连接”错误
2019-03-13
Shell脚本防DNS攻击检测并删除肉机IP
2019-03-13
如何在VSCode中定制JSON的IntelliSense
2019-03-13