• .NET Core Apollo 配置中心


    Apollo Quick Start

    Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
    服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

    配置中心的应用场景:
    ● 公司内存在多个系统,比如我们的web站点外加dubbo服务总超过20个,且系统之间的技术架构基本相同并且有一定的联系性
    ● 一套系统需要配置多个环境,我们有开发环境,测试环境,预上线环境,线上环境

    Quick Start
    本地部署:https://github.com/ctripcorp/apollo/wiki/Quick-Start
    Docker部署:https://github.com/ctripcorp/apollo/wiki/Apollo-Quick-Start-Docker部署
    分布式部署:https://github.com/ctripcorp/apollo/wiki/分布式部署指南

    1、管理 NuGet 包(N)...

    Com.Ctrip.Framework.Apollo.Configuration

    2、appsettings.json
    AppId:标识应用身份的唯一id;
    MetaServer:客户端获取配置的服务器配置;

    1. {
    2. "Logging": {
    3. "LogLevel": {
    4. "Default": "Information",
    5. "Microsoft": "Warning",
    6. "Microsoft.Hosting.Lifetime": "Information"
    7. }
    8. },
    9. "AllowedHosts": "*",
    10. "Apollo": {
    11. "AppId": "apollo.net",
    12. "Cluster": "test",
    13. "MetaServer": "http://localhost:8080/",
    14. "Secret": "f55faf3729e14866ac5fc2bed2293643",
    15. "Namespaces": ["application.xml","application.json","application.yml","application.yaml","application"],
    16. "Env": "Dev",
    17. "Meta": {
    18. "DEV": "http://106.54.227.205:8080/",
    19. "FAT": "http://106.54.227.205:8080/",
    20. "UAT": "http://106.54.227.205:8080/",
    21. "PRO": "http://106.54.227.205:8080/"
    22. }
    23. }
    24. }

    3、Program.cs

    1. using Com.Ctrip.Framework.Apollo;
    2. using Com.Ctrip.Framework.Apollo.Logging;
    3. using Microsoft.AspNetCore.Hosting;
    4. using Microsoft.Extensions.Configuration;
    5. using Microsoft.Extensions.Hosting;
    6. namespace ApolloProject
    7. {
    8. public class Program
    9. {
    10. public static void Main(string[] args)
    11. {
    12. CreateHostBuilder(args).Build().Run();
    13. }
    14. public static IHostBuilder CreateHostBuilder(string[] args) =>
    15. Host.CreateDefaultBuilder(args)
    16. .ConfigureAppConfiguration((context, config) =>
    17. {
    18. //注入配置
    19. //把阿波罗的日志级别调整为最低
    20. LogManager.UseConsoleLogging(Com.Ctrip.Framework.Apollo.Logging.LogLevel.Trace);
    21. config
    22. .AddApollo(config.Build().GetSection("Apollo"))
    23. .AddDefault()
    24. //.AddDefault(Com.Ctrip.Framework.Apollo.Enums.ConfigFileFormat.Properties); //添加默认application Namespace
    25. .AddNamespace("TEST3.Shared")
    26. .AddNamespace("ClientService");
    27. })
    28. .ConfigureWebHostDefaults(webBuilder =>
    29. {
    30. webBuilder.UseStartup();
    31. });
    32. }
    33. }

    4、Startup.cs
    *
    *
    5、ValuesController.cs

    1. using Microsoft.AspNetCore.Http;
    2. using Microsoft.AspNetCore.Mvc;
    3. using Microsoft.Extensions.Configuration;
    4. using System.Collections.Generic;
    5. namespace ApolloProject.Controllers
    6. {
    7. [Route("api/[controller]")]
    8. [ApiController]
    9. public class ValuesController : ControllerBase
    10. {
    11. private readonly IConfiguration _configuration;
    12. public ValuesController(IConfiguration configuration)
    13. {
    14. _configuration = configuration;
    15. }
    16. [HttpGet]
    17. public ActionResultstring>> Get()
    18. {
    19. var appName = _configuration["AppName"];
    20. return new string[] { "value1", "value2", appName };
    21. }
    22. }
    23. }

    *
    *
    *
    *
    *

  • 相关阅读:
    数据库插入数据
    gRPC之proto数据验证
    线程安全以及解决方案
    MySQL Oracle区别
    AndroidX App Startup 介绍及使用
    详解使用sklearn实现一元线性回归和多元线性回归
    LinkedList源码深度剖析
    【MySQL】21-MySQL之增删改
    【vivado】vivado导出hardware问题
    【附代码】使用Shapely计算多边形外扩与收缩
  • 原文地址:https://blog.csdn.net/KingCruel/article/details/127406578