ToB企服应用市场:ToB评测及商务社交产业平台

标题: 第三章 分布式配置中心 [打印本页]

作者: 渣渣兔    时间: 2024-2-23 11:00
标题: 第三章 分布式配置中心
1. 简介

为什么需要分布式配置中心

分布式配置中心是为了解决在分布式系统中进行配置管理的需求而引入的。在传统的单体应用中,通常使用配置文件集中管理系统的配置信息。然而,在分布式系统中,由于系统规模变大、节点众多,并且可能部署在不同的服务器上,传统的配置文件方式会面临一些挑战。
首先,配置文件的修改和发布需要手动操作,如果系统规模庞大则变得非常繁琐和容易出错。其次,配置文件不易实现动态更新,如果需要修改某项配置,需要重新部署整个应用。而对于分布式系统来说,这样的操作会带来不可忽视的停机时间和影响。
因此,引入分布式配置中心可以解决这些问题。分布式配置中心提供了一个集中式的管理界面,可以方便地进行配置修改和发布。同时,它支持实时动态更新配置,可以使得配置的修改立即生效,无需重启应用或重新部署。此外,分布式配置中心还提供了配置的版本管理、权限控制、配置项的灰度发布等功能,能够更好地满足分布式系统的配置管理需求。
 
什么是分布式配置中心

分布式配置中心是一种用于管理和集中存储分布式系统配置信息的工具或服务。它提供了一个集中化的平台,方便开发人员对系统配置进行统一管理和调整,以满足不同环境下的需求。
.Net 分布式配置中心通常具有以下特点:
通过使用分布式配置中心,团队可以更加高效地管理和维护分布式系统的配置,降低系统配置管理的复杂度,提高系统的可维护性和灵活性。
 
2. Nacos 配置中心

文档地址:GitHub - nacos-group/nacos-sdk-csharp: This nacos csharp sdk
安装


如何使用

 

 
配置公共部分

如果是做微服务项目,其实每个项目的配置有很多东西都是共用的,例如:jwt 配置,日志配置等等。

 

 
 
修改NacosConfig节点配置
  1. "NacosConfig": {
  2.     "Listeners": [
  3.       {
  4.         "Optional": true,
  5.         "DataId": "app1-dev.json",
  6.         "Group": "DEFAULT_GROUP"
  7.       },
  8.         // 公共配置
  9.       {
  10.         "Optional": true,
  11.         "DataId": "app-common.json",
  12.         "Group": "DEFAULT_GROUP"
  13.       }
  14.     ],
  15.     "Namespace": "NetCloud",
  16.     "serverAddresses": [
  17.       "http://101.43.242.9:8848"
  18.     ],
  19.     "UserName": "nacos",
  20.     "Password": "nacos",
  21.     "ConfigUseRpc": false,
  22.     "NamingUseRpc": false
  23.   }
复制代码
 
使用方式
同上。
直接使用IConfiguration 接口注入获取配置即可
 
Nacos 多环境问题

当我们所有的环境都共用一套配置中心的时候,最让我们苦恼的问题应该是要怎么样去隔离这些不同的环境!
手段有如下几种:
在Nacos中,推荐的做法是用NameSpace来区分。
 
使用步骤

可以考虑用应用名.环境名的形式,只要统一就好。
 
 
 
 
3. Appolo

官方文档:Apollo配置中心介绍 (apolloconfig.com)
官方 GitHub: https://github.com/ctripcorp/apollo
官方 Gitee:apollo: Apollo(阿波罗 (gitee.com)
 
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
安装步骤

1. 下载安装包(官方提供的)

2、配置数据库连接信息

Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑demo.sh,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息。
注意:填入的用户需要具备对ApolloPortalDB和ApolloConfigDB数据的读写权限。
  1. #apollo config db info
  2. apollo_config_db_url="jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai"
  3. apollo_config_db_username=用户名
  4. apollo_config_db_password=密码(如果没有密码,留空即可)
  5. # apollo portal db info
  6. apollo_portal_db_url="jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai"
  7. apollo_portal_db_username=用户名
  8. apollo_portal_db_password=密码(如果没有密码,留空即可)点击复制错误复制成功
复制代码
 
注意:不要修改demo.sh的其它部分
3. 安装open-jdk 1.8

4. 启动运行:
  1. 1. 解压apollo-quick-start.zip
  2. unzip apollo-quick-start.zip
  3. 2. 启动
  4. ./demo.sh start
  5. 成功提示如下:
  6. ==== starting service ====
  7. Service logging file is ./service/apollo-service.log
  8. Started [10768]
  9. Waiting for config service startup.......
  10. Config service started. You may visit http://localhost:8080 for service status now!
  11. Waiting for admin service startup....
  12. Admin service started
  13. ==== starting portal ====
  14. Portal logging file is ./portal/apollo-portal.log
  15. Started [10846]
  16. Waiting for portal startup......
  17. Portal started. You can visit http://localhost:8070 now!
复制代码
 
启动成功之后出提示两个运行地址:
 
5. 卸载Apollo

 
创建客户端

dotnet-git : https://github.com/ctripcorp/apollo.net/tree/dotnet-core
注意事项

 
4. Consul 配置中心

前面介绍到了Consul 具有Key/Value 功能,意思就是用于做分布式配置中心。
4.1 安装

省略
4.2 创建配置中心步骤

1. 单服务情况下

一般创建一个 appsettings.json配置文件即可

 
2. 多服务情况下

利用文件夹分层的方式,在Consul客户端上一个项目对应一个文件夹,然后在各自文件夹下放各自的appsettings.json, 如:ConfigCenterTest/appsettings.json、GoodsService/appsettings.json,然后在Program加载配置文件的时候,动态获取项目名称,进行路径的组装即可。
 
(1)创建文件夹

 
(2) 这个是保存好的文件夹

 
(3) 编写配置文件

 
4.3 接入.Net 6

5. SummberBoot 集成配置中心

github 文档:SummerBoot/README.zh-cn.md at master · TripleView/SummerBoot · GitHub
SummerBoot 是将SpringBoot的先进理念与C#的简洁优雅合二为一,声明式编程,专注于”做什么”而不是”如何去做”。在更高层面写代码,更关心的是目标,而不是底层算法实现的过程,SummerBoot,致力于打造一个人性化框架,让.net开发变得更简单优雅。
SummberBoot 目前支持的配置中心只有Nacos。
如何使用

视频配套链接:课程简介 (cctalk.com)
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4