# Apollo **Repository Path**: lztkdr/apollo ## Basic Information - **Project Name**: Apollo - **Description**: No description available - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-07-31 - **Last Updated**: 2022-11-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Apollo Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。 ### 支持维度 Apollo支持4个维度管理Key-Value格式的配置: - #### application (应用) - #### environment (环境) - #### cluster (集群) - #### namespace (命名空间) ### 快速上手 https://www.apolloconfig.com/#/zh/deployment/quick-start ### 部署 apolloconfigdb.sql/apolloportaldb.sql/docker-compose.yml https://github.com/ctripcorp/apollo/tree/master/scripts/docker-quick-start **注意:** 1. 容器里最好没有mysql 2. 容器的资源要求,越高越好。 ``` shell mkdir -p /usr/local/deploy/apolly # 将 apolloconfigdb.sql/apolloportaldb.sql/docker-compose.yml 上传到 /usr/local/deploy/apolly # 第一次执行会触发下载镜像等操作,需要耐心等待一些时间 docker-compose up # 发现 出现 apollo-quick-start | Portal started. You can visit http://localhost:8070 now! # 说明 启动成功 # 停止 docker-compose stop # 后台启动 3 种方式都可以 docker-compose start 或 docker-compose restart 或 docker-compose up -d ``` ### 界面操作 - 添加新用户 管理员工具 → 用户管理 → 添加新用户 lztkdr 123456 lztkdr@qq.com - 创建项目 - 删除项目 管理员工具 → 删除应用 集群 AppNameSpace 输入AppId 查询,删除 ### 客户端对接 [ctripcorp/apollo.net: Apollo配置中心.Net客户端 (github.com)](https://github.com/ctripcorp/apollo.net) https://github.com/ctripcorp/apollo.net/tree/dotnet-core/Apollo.Configuration 1. nuget Com.Ctrip.Framework.Apollo.Configuration 2. 配置apollo地址 ``` "Apollo": { "AppId": "AppId-MicroserviceClient-200919", "Env": "DEV", //Eureka界面 "MetaServer": "http://192.168.17.132:8080/", "ConfigServer": [ "http://192.168.17.132:8080/" ] } ``` 3. 初始化configuration ``` csharp using Com.Ctrip.Framework.Apollo; using Com.Ctrip.Framework.Apollo.Core; using Com.Ctrip.Framework.Apollo.Logging; public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) => { //注入配置 把阿波罗的日志级别调整为最低 LogManager.UseConsoleLogging(Com.Ctrip.Framework.Apollo.Logging.LogLevel.Trace); configurationBuilder .AddApollo(configurationBuilder.Build().GetSection("apollo")) .AddDefault() .AddNamespace(ConfigConsts.NamespaceApplication); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }); ``` 4. 程序读取 ``` csharp private readonly ILogger _logger; private readonly IConfiguration _configuration; public HomeController(ILogger logger, IConfiguration configuration) { _logger = logger; _configuration = configuration; } public IActionResult Index() { ViewBag.name = _configuration["name"]; ViewBag.age = _configuration["age"]; ViewBag.address = _configuration["address"]; return View(); } ``` ### 数据优先级 当开发环境无法连接Apollo服务器的时候,会降级为读取本地配置文件,请先在普通模式下使用Apollo,这样Apollo会自动创建该目录并在目录下生成配置文件。 Apollp在线---获取过配置---默认本地临时文件夹缓存一份儿(硬盘) Apollo在线---本地缓存---配置文件 配置文件+Apollo 是合作式---Apollo优先