栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

8. .NET5微服务中的Apollo配置

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

8. .NET5微服务中的Apollo配置

什么是Apollo

Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

那么Apollo能解决什么问题呢,在我们的微服务程序中,随着接入的中间件越来越多,相关的配置项也越来越多,如何对这些配置项进行统一管理就成了一个问题,若配置项需要改动,则直接在apollo中配置好进行推送,系统就可以直接升级,方便快捷。

Apollo的安装

由于apollo本地配置比较复杂,需要安装java相关环境和mysql,所以这里推荐使用docker一键部署,首先去github上下载apollo的源码,地址在这里https://github.com/ctripcorp/apollo,下载好源码之后,找到下图这个目录。

然后启动docker,进入到docker-quick-start目录下,运行如下命令。

docker-compose up

这里时间比较长,需要下载mysql等相关的依赖,等待下载完成,可以用images命令查看一下。

docker images


这里就会发现多了两个镜像,一个mysql一个apollo-quick-start。接着运行ps命令。

docker ps    //查看正在运行的容器
docker ps -a   //查看所有的容器


启动这两个容易即可。
这里有一点需要注意下,apollo中占用了两个端口8070和8080,

  • 8070 为后台管理系统的地址端口号。
  • 8080 为为外部服务提供接口的地址。


如果容器能正常启动,这时候打开localhost:8070看一下,若能出现如下页面表示登录成功。

用户名密码为:apollo / admin。
接着就可以创建项目了。

AppId 为整个项目中的唯一标识,之后在项目中是需要用到的。

项目创建好,接下来需要创建一个键值对了,这里是数据库连接字符串举例,每个服务都需要配置数据库连接字符串,所以就统一放到apollo中配置。

这里我已经配置好,并且发布了。好了接下来就该去代码中接入Apollo了。

.NET5接入Apollo

这里我们以商品服务举例,其他服务操作都是一样的,首先还是需要引入nuget包。

 

接着在appsetting.json中配置apollo的地址。

  //Apollo的配置
  "Apollo": {
    "AppId": "easy-shop",
    "Env": "DEV",
    "MetaServer": "http://localhost:8080",
    "ConfigServer": [ "http://localhost:8080" ]
  }

注意这里的端口是8080,是apollo提供服务的地址。
然后需要修改下Program.cs文件,把apollo的配置项加进去。

  public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
             .ConfigureAppConfiguration((hostingContext, builder) =>
             {
                 builder.AddApollo(builder.Build().GetSection("Apollo")).AddDefault();
             })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseUrls("https://*:5070").UseStartup();
                });

接着在Configuration下就可以使用apollo了,例如获取数据库连接字符串。

   //原始写法
       services.AddDbContext(options =>
       options.UseMySQL(Configuration.GetConnectionString("MysqlConnectionString")));
  //采用apollo的写法
       services.AddDbContext(options =>
       options.UseMySQL(Configuration.GetValue("MysqlConnectionString")));

使用apollo来管理配置项之后,就可以把appsetting.json下对应的配置项删除了。

总结

这里的apollo使用的比较简单,还有一些功能暂时没有涉及到,不过整体的使用就是这样。

项目地址:https://gitee.com/limeng66/easy-shop

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911423.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号