zoukankan      html  css  js  c++  java
  • 微服务-基于Apollo的统一配置(5)

    在微服务项目中,随着微服务数量的增加,统一修改配置时需要逐个修改并发布会非常繁琐。引入Apollo进行所有配置项的统一管理。
    Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境,不同集群的配置,修改后能够实时推送到应用端,并具备规范的权限,流程治理等特性。
     
    一.Apollo安装:
    docker-compose部署
    准备好配置文件:
     
    cd进入存放配置文件的文件夹,这里起名“Apollo”
    输入:docker-compose up -d
    可能遇到以下问题:
    Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg
    解决方法:
    wget https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m) -O /usr/local/bin/docker-compose
     
    安装完成后:
     
     
    浏览器访问18070端口
    账号:apollo 密码:admin 首页如下图:
     
    二.Apollo使用:
    (1)创建WebApi项目 ServiceApi
     
    (2)Nuget包:
    Com.Ctrip.Framework.Apollo.Configuration
     
    (3)修改配置
    appsettings.json
    1 "Apollo": {
    2     "AppId": "MicroServiceAppId",
    3     "Env": "DEV",
    4     "MetaServer": "http://192.168.0.113:18080/",
    5     "ConfigServer": [ "http://192.168.0.113:18080/" ]
    6   }

    其中 192.168.0.113是linux对应的服务器地址

    Program.cs
     1 public static IHostBuilder CreateHostBuilder(string[] args) =>
     2 Host.CreateDefaultBuilder(args)
     3   .ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) =>
     4   {
     5       LogManager.UseConsoleLogging(Com.Ctrip.Framework.Apollo.Logging.LogLevel.Trace);
     6       configurationBuilder
     7           .AddApollo(configurationBuilder.Build().GetSection("apollo"))
     8           .AddDefault()
     9           .AddNamespace("MicroServiceJson", ConfigFileFormat.Json)//自定义的private NameSpace
    10           .AddNamespace(ConfigConsts.NamespaceApplication);//Apollo中默认NameSpace的名称 
    11   })
    12     .ConfigureWebHostDefaults(webBuilder =>
    13     {
    14         webBuilder.UseStartup<Startup>();
    15     });
    (4)在Apollo中配置Json命名空间
    “添加Namespace”
     
    配置AppID
    创建私有命名空间“MicroServiceJson”,和项目中的配置项对应
    配置文本内容,以下是appsettings.json内容,添加测试节点“ApolloTestOption”
    点击按钮“发布”,配置文件发布成功并生效
     
    (5)代码调试:
    Summaries[0] = configuration["ApolloTestOption:NameA"];
    结果如下:
     
     
    以上仅用于总结和学习!

  • 相关阅读:
    最详细易懂的CRC-16校验原理(附源程序)(转)
    深入理解Java的接口和抽象类(转)
    同步、更新、下载Android Source & SDK from 国内镜像站(转载)
    django字段查询参数及聚合函数
    django不返回QuerySets的API
    django查询集API
    django查询操作
    django用包来组织模型
    django模型的继承
    django模型的元数据Meta
  • 原文地址:https://www.cnblogs.com/ywkcode/p/14576745.html
Copyright © 2011-2022 走看看