Asp.Net Core Apollo
2022/4/8 20:20:13
本文主要是介绍Asp.Net Core Apollo,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Asp.Net Core Apollo
1.1 Apollo简介
git地址:https://github.com/apolloconfig
Apollo(阿波罗)是携程框架部研发并开源的一款生产级的配置中心产品,它能够集中管理应用在不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
namespace:
- namespace是配置项的集合,类似于一个配置文件的概念。
- namespace的格式:配置文件有多种格式,例如:properties、xml、yml、yaml、json等
- namespace的获取权限分类
- private:只能被所属应用获取到,一个应用尝试获取其他应用private的namespace,Apollo会报“404”异常。
- Public :能被任何应用获取。http请求直接传public的集群+namespace名称,就可以获取到公共配置。
- namespace的类型
- 私有类型:具有private权限。
- 公共类型:具有public权限,公共类型的namespace通过名称标识,因此名称必须全局唯一。
- 关联类型:又称为继承类型,具有
private
权限。关联类型的name space继承于公共类型的name space,用于覆盖公共namespace的某些配置。
这里不做过多介绍,主要是记录asp.net core中使用Apollo,偏操作。
1.2 docker安装Apollo
环境说明:vmware16 Pro + centos7
(1)docker安装mysql
(2)执行sql
地址:https://github.com/apolloconfig/apollo/tree/master/scripts/docker-quick-start/sql
(3)docker安装Apollo Config Service
参数说明:
- SPRING_DATASOURCE_URL: 对应环境ApolloConfigDB的地址
- SPRING_DATASOURCE_USERNAME: 对应环境ApolloConfigDB的用户名
- SPRING_DATASOURCE_PASSWORD: 对应环境ApolloConfigDB的密码
拉取镜像
docker pull apolloconfig/apollo-configservice
运行容器
docker run -p 8080:8080 \ -e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.188.180:3306/ApolloConfigDB?characterEncoding=utf8" \ -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=root \ -d -v /tmp/logs:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice
(4)docker安装Apollo Admin Service
参数说明:
- SPRING_DATASOURCE_URL: 对应环境ApolloConfigDB的地址
- SPRING_DATASOURCE_USERNAME: 对应环境ApolloConfigDB的用户名
- SPRING_DATASOURCE_PASSWORD: 对应环境ApolloConfigDB的密码
拉取镜像
docker pull apolloconfig/apollo-adminservice
运行容器
docker run -p 8090:8090 \ -e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.188.180:3306/ApolloConfigDB?characterEncoding=utf8" \ -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=root \ -d -v /tmp/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice
(5)docker安装Apollo Portal
参数说明:
- SPRING_DATASOURCE_URL: 对应环境ApolloPortalDB的地址
- SPRING_DATASOURCE_USERNAME: 对应环境ApolloPortalDB的用户名
- SPRING_DATASOURCE_PASSWORD: 对应环境ApolloPortalDB的密码
- APOLLO_PORTAL_ENVS(可选): 对应ApolloPortalDB中的apollo.portal.envs配置项,如果没有在数据库中配置的话,可以通过此环境参数配置
- DEV_META/PRO_META(可选): 配置对应环境的Meta Service地址,以${ENV}_META命名,需要注意的是如果配置了ApolloPortalDB中的apollo.portal.meta.servers配置,则以apollo.portal.meta.servers中的配置为准
拉取镜像
docker pull apolloconfig/apollo-portal
运行容器
docker run -p 8070:8070 \ -e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.188.180:3306/ApolloPortalDB?characterEncoding=utf8" \ -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=root \ -e APOLLO_PORTAL_ENVS=dev,pro \ -e DEV_META=http://192.168.188.180:8080 -e PRO_META=http://192.168.188.180:8080 \ -d -v /tmp/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal
(6)查看防火墙,因为模拟内网,所以直接关闭了防火墙
# 查看防火墙状态 firewall-cmd --state # 关闭防火墙 systemctl stop firewalld
(7)访问:http://192.168.188.180:8070/
用户名:apollo
密码:admin
(8)如果登陆后出现错误,请联系管理员之类的,可以检查一下数据表中该配置项,需要修改数据库,然后重启三个服务
因为是单机服务,改成和apollo-configservice一样的IP:Port即可
(8)常用命令
# 强制删除 docker rm -f apollo-configservice docker rm -f apollo-adminservice docker rm -f apollo-portal # 重启容器 docker restart apollo-configservice docker restart apollo-adminservice docker restart apollo-portal # 容器随docker启动自动运行 docker update apollo-configservice --restart=always docker update apollo-adminservice --restart=always docker update apollo-portal --restart=always
1.3 Asp.Net Core 中使用Apollo
(1)创建NameSpace
(2)Asp.NetCore程序读取
安装包:
Install-Package Com.Ctrip.Framework.Apollo.Configuration
代码:
builder.Host.ConfigureAppConfiguration((context, configurationBuilder) => { var apolloConfig = configurationBuilder.Build().GetSection("Apollo"); configurationBuilder.AddApollo(apolloConfig).AddDefault().AddNamespace("TEST1.dev.json"); });
截图:
Apollo:
这篇关于Asp.Net Core Apollo的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具