当前位置:网站首页>阿里云微服务(二) 分布式服务配置中心以及Nacos的使用场景及实现介绍
阿里云微服务(二) 分布式服务配置中心以及Nacos的使用场景及实现介绍
2022-07-06 09:19:00 【几何学家】
如果说注册中心是用来在微服务中进行寻址,帮助一个服务调用另一个服务,那么服务配置的作用就是可以更方便的修改各个服务的配置,举个例子,如果我们使用配置文件进行配置信息,如果要修改某一个配置项的话,我们就需要重新打包,发布,但是如果使用配置中心的话,则只需要修改即可
关于为神马要使用配置中心,我觉得主要有以下几个原因:
1.分离的多环境配置
2.更灵活的管理权限
3.更高的安全性
关于1.分离的多环境配置
在同样的情况下可能需要不同的配置环境
如下,我们在配置中心nacos中添加一个配置信息
在服务中进行测试看能否读取配置信息
可以从下图看到读取配置信息成功
刚才的配置信息是在properties中配置的,那如果将配置文件改为yaml会怎么办呢?
可以看到读取了yaml文件的信息
这之后可以从Nacos中及时观察到两个配置文件,可以更加方便的对文件进行管理
关于配置信息的话常见的情况下同一份代码可能会在不同的场景上在profile和namespace上有不同的配置
profile是在不同的profile下可以有同样的配置项但是有不同的值
如下在环境中将profile更改为develop
使用应用名称+profile的命名来进行创建
关于namespace的不同
新建一个namespace training
记录下他的namespace id
添加到配置中
可以看到读取namespace的配置信息成功成功
关于Nacos
Nacos主要有服务注册和发现,健康检查以及访问策略三个功能
下图是nacos和zookeeper以及Eureka的对比
可以看到Nacos可以自由的选择一致性协议,关于一致性协议如何选择的问题,可以理解为
如果单次写请求的成败很重要,则应该保证cp的一致性,因为cp的一致性牺牲了服务整体的可用性来换取数据的一致性
如果单次请求的成败不是很重要,而是可以通过后续数据补偿机制来保持数据一致性,则应该保证ap的一致性
除此之外,Nacos在访问策略上也有自己的优势
服务端的访问策略更灵活,因为不需要客户端的修改以及使用过程中可以更灵活的调整
在数据服务模型中,服务和集群可以存储不同的服务配置来进行服务的管理,像一些具体信息比如ip和端口可以交给实例进行管理即可
Nacos的实现中主要分为下面几个模块
用户接口模块中定义了初步的权限校验,参数校验以及数据的转换
推送模块管理所有的订阅端,以及推送的触发,聚合以及去重等工作
健康检查模块支持服务端探测和客户端上报
访问策略通过不同的访问策略对服务端进行过滤,目前支持的访问策略有基于标签的访问策略
进行数据的存储以及server之间的同步来保证数据的一致性
边栏推荐
- WSL common commands
- The port is occupied because the service is not shut down normally
- 【干货】提升RTK模糊度固定率的建议之周跳探测
- rtklib单点定位spp使用抗差估计遇到的问题及解决
- RTKLIB: demo5 b34f.1 vs b33
- Record: the solution of MySQL denial of access when CMD starts for the first time
- Fairygui joystick
- Fgui project packaging and Publishing & importing unity & the way to display the UI
- On March 15, the official version of go 1.18 was released to learn about the latest features and usage
- MySQL shutdown is slow
猜你喜欢
[algorithm] sword finger offer2 golang interview question 10: subarray with sum K
Affichage du changement de valeur du Buff de gain de l'interface graphique de défaillance
On March 15, the official version of go 1.18 was released to learn about the latest features and usage
Novatel board oem617d configuration step record
Music playback (toggle & playerprefs)
染色法判定二分图
[算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等
Fgui project packaging and Publishing & importing unity & the way to display the UI
[算法] 劍指offer2 golang 面試題2:二進制加法
十分钟彻底掌握缓存击穿、缓存穿透、缓存雪崩
随机推荐
十分钟彻底掌握缓存击穿、缓存穿透、缓存雪崩
Code example of MATLAB reading GNSS observation value o file
[算法] 劍指offer2 golang 面試題2:二進制加法
KF UD分解之伪代码实现进阶篇【2】
FairyGUI循環列錶
Mixed use of fairygui button dynamics
Devops' future: six trends in 2022 and beyond
121 distributed interview questions and answers
Record: Navicat premium can't connect to MySQL for the first time
Itext 7 生成PDF总结
PRIDE-PPPAR源码解析
[算法] 剑指offer2 golang 面试题13:二维子矩阵的数字之和
[GNSS data processing] Helmert variance component estimation analysis and code implementation
平衡二叉树详解 通俗易懂
闇の連鎖(LCA+树上差分)
Implementation of Excel import and export functions
The master of double non planning left the real estate company and became a programmer with an annual salary of 25W. There are too many life choices at the age of 25
Combination of fairygui check box and progress bar
FairyGUI增益BUFF數值改變的顯示
FairyGUI条子家族(滚动条,滑动条,进度条)