基于Apollo实现.NET Core微服务统一配置(测试环境-单机)

简介: 一、前言注:此篇只是为测试环境下的快速入门。后续会给大家带来生产环境下得实战开发。具体的大家可以去看官方推荐。非常的简单明了。以下介绍引用官方内容:Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

一、前言


注:此篇只是为测试环境下的快速入门。后续会给大家带来生产环境下得实战开发。

具体的大家可以去看官方推荐。非常的简单明了。以下介绍引用官方内容:

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

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有额外支持。

.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。

官方github地址:https://github.com/ctripcorp/apollo/wiki

 

二、环境介绍及安装Apollo


1、环境介绍

虚拟机服务器:CentOS 7.4

IP地址:192.168.250.131

安装包下载:apollo-build-scripts项目

基础软件环境:       

JAVA JDK 1.8+
Mysql 5.7

 

2、安装Apollo

第一步:JAVA环境安装

A、下载JDK 1.8

命令:

wget --no-check-certificate --no-cookie --header "Cookie: oraclelicense=accept-securebackup-cookie;" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm

如果上述命令无法使用,则直接去oracle网站下载即可。

Oracle地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

B、下载压缩包后,我们就要解压JDK即可

rpm -ivh jdk-8u181-linux-x64.rpm

 

C、检查 JDK 是否安装完毕

java -version

 

第二步:安装mysql 5.7

由于 apollo需要的mysql数据版本为5.6.5+,因此安装5.7版本的。

具体原因是:Apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。

A、此mysql 我才用docker安装即可。简单方便。

B、安装完成后需要把apollo的两个数据库文件执行以下即可

apolloconfigdb.sql

apolloportaldb.sql

执行完毕后就可以在数据库中看到这两个数据库啦

 

第三步:下载Apollo-build-scripts 项目到服务器上 

文件内容

A、然后修改 项目中的 demo.sh 文件里面的数据库地址即可。

具体如下:

 

 B、然后把demo.sh 项目设置可执行权限

 chmod +x demo.sh

 

C、设置完毕后就启动 demo.sh吧

./demo.sh start

 

 启动完毕:

 

打开地址:192.168.250.131:8070

默认账号和密码: apollo /  admin 

 

登录后就可以看到一个demo。

 

注:如果提示系统出错,请稍后几秒钟重试一下,因为通过Eureka注册的服务有一个刷新的延时。

 

 

第四步:开始创建一个自己的项目配置

注:在接下去的.net core 项目中,我们会把swagger的配置信息配置在apollo上。

A、创建项目

 

B、开始配置我们的namespace.

此处的namespace其实直观说是命名空间,也可以说是 分组。

namespace中有分为  public 和private,公有就是共享的,其他项目可以用,私有就是只有特定的项目可以用。

其实这个分组的概念非常的好,也很清楚的隔开每一个项目配置。

创建我的swagger 私有配置

 

C、然后添加配置,添加配置可以选择文本添加或者按钮添加

添加两个  title和 version。

文本添加或者  按钮点击添加都可以。

 

 

然后选择 “发布”即可。

apollo 配置完毕。接下来就要配置.NET Core项目啦。 

 

三、.NET Core中集成Apollo


1、新建一个.net core项目

在appsettings.json 中添加apollo配置

其中 AppId 是项目的唯一标识,就是我们在apollo上创建项目的唯一标识。

  "apollo": {
    "AppId": "LouieSwaggerDemo",
    "MetaServer": "http://192.168.250.131:8080"
  }

 

 

2、在项目中引入apollo包和 swagger包

然后右键项目 选择“属性” 把 调试改为 swagger

 

 

3、在Program.cs 中注入配置

需要注入我们创建的命名空间哟。并且注入到Configuration 配置中。

 

 

4、在Startup.cs中配置一下swagger的信息

其中 Configuration["XXXXX"]   中的字符串名称是  和apollo上面的我们创建的项目的名称要保持一致。

public void ConfigureServices(IServiceCollection services)
        {
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc(Configuration["swagger.version"], new Info
                {
                    Version = Configuration["swagger.version"],
                    Title = Configuration["swagger.title"]
                });
                var basePath = PlatformServices.Default.Application.ApplicationBasePath;
                var xmlPath = Path.Combine(basePath, "ApolloConfigureCenter.xml");
                c.IncludeXmlComments(xmlPath);
            });
            services.AddMvc();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v2/swagger.json", Configuration["swagger.title"]);
            });
            app.UseMvc();
        } 

 

 5、至此,项目配置已搞定。我们就可以运行一下啦。

发现配置应用成功。至此,测试环境-单机搭建已经OK。

 

 

四、总结


apollo配置实在是强大,方便管理我们多个微服务应用配置。用起来也是棒棒的。大家如果有时间可以尝试一下。

此篇为apollo下的测试环境单机部署,如果想要运用到生产环境中,就要用上分布式部署啦,官网上也有介绍。

后续我也会继续给大家带来生产环境中的部署。大家尽情期待吧。

 

五、参考资料


0、本文案例代码:github:https://github.com/LouieGuo/ApolloConfigureCenter_Demo

1、Apollo官方github:WIKI

2、Edison Zhou:.NET Core微服务之基于Apollo实现统一配置中心

3、乔达摩:Asp.Net Core与携程阿波罗(Apollo)的第一次亲密接触

 

asp.net core 交流群:787464275 欢迎加群交流
如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【推荐】按钮精神支持,因为这种支持是我继续写作,分享的最大动力!

作者:LouieGuo
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!

微信公众号:欢迎关注                                                 QQ技术交流群: 欢迎加群

                

LouieGuo
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
测试技术 微服务
使用Istio实现流量镜像:提升微服务测试的利器
使用Istio实现流量镜像:提升微服务测试的利器
459 99
|
12月前
|
开发框架 .NET C#
ASP.NET Core Blazor 路由配置和导航
大家好,我是码农刚子。本文系统介绍Blazor单页应用的路由机制,涵盖基础配置、路由参数、编程式导航及高级功能。通过@page指令定义路由,支持参数约束、可选参数与通配符捕获,结合NavigationManager实现页面跳转与参数传递,并演示用户管理、产品展示等典型场景,全面掌握Blazor路由从入门到实战的完整方案。
827 6
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
983 5
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
499 4
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
640 13
|
运维 关系型数据库 MySQL
os-copilot安装_配置_功能测试全集
我是一位中级运维工程师,我平时工作会涉及到 各类服务器的 数据库 与 java环境配置 操作。 我顺利使用了OS Copilot的 -t -f | 功能,我的疑惑是不能在自动操作过程中直接给与脚本运行权限,必须需要自己运行一下 chmod 这个既然有了最高的权限,为什么就不能直接给与运行权限呢。 我认为 -t 功能有用,能解决后台运行基础命令操作。 我认为 -f 功能有用,可以通过task文件中撰写连续任务操作。 我认为 | 对文件理解上有很直接的解读,可以在理解新程序上有很大帮助。
585 86
|
人工智能 Ubuntu Linux
os-copilot使用之全面配置与使用测试
作为一名个人开发者,我主要从事云服务器架设工作。近期,我成功使用了OS Copilot的 `-t -f |` 功能,解决了执行语句、连续提问及快速理解文件的问题。我发现这些功能非常实用,特别是在使用Workbench时能快速调用AI助手。此外,建议将AI功能与xShell工具联动,进一步提升效率。文中详细记录了购买服务器、远程连接、安装配置OS Copilot以及具体命令测试的过程,展示了如何通过快捷键和命令行操作实现高效开发。
685 67
|
域名解析 弹性计算 监控
slb测试基本配置检查
slb测试基本配置检查
494 60
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
2382 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
797 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈