当前位置:网站首页>阿里云微服务(二) 分布式服务配置中心以及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之间的同步来保证数据的一致性
边栏推荐
- [算法] 剑指offer2 golang 面试题5:单词长度的最大乘积
- 341. Flatten nested list iterator
- 抗差估计在rtklib的pntpos函数(标准单点定位spp)中的c代码实现
- [算法] 劍指offer2 golang 面試題2:二進制加法
- Sharing ideas of on-chip transplantation based on rtklib source code
- GNSS positioning accuracy index calculation
- Fairygui joystick
- Record: Navicat premium can't connect to MySQL for the first time
- 编辑距离(多源BFS)
- Comparative analysis of the execution efficiency of MySQL 5.7 statistical table records
猜你喜欢
【GNSS数据处理】赫尔默特(helmert)方差分量估计解析及代码实现
Mysql database reports an error: row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT=DY
Fabrication of fairygui simple Backpack
如何保障 MySQL 和 Redis 的数据一致性?
Prove the time complexity of heap sorting
[algorithm] sword finger offer2 golang interview question 2: binary addition
地球围绕太阳转
[algorithm] sword finger offer2 golang interview question 6: sum of two numbers in the sorting array
[算法] 剑指offer2 golang 面试题2:二进制加法
抗差估计在rtklib的pntpos函数(标准单点定位spp)中的c代码实现
随机推荐
Compile GDAL source code with nmake (win10, vs2022)
How to reduce the shutdown time of InnoDB database?
Affichage du changement de valeur du Buff de gain de l'interface graphique de défaillance
Devops' future: six trends in 2022 and beyond
[算法] 剑指offer2 golang 面试题6:排序数组中的两个数字之和
Fundamentals of UD decomposition of KF UD decomposition [1]
Problems and solutions of robust estimation in rtklib single point location spp
Fairygui character status Popup
记录:动态Web项目servlet访问数据库404错误之解决
十分钟彻底掌握缓存击穿、缓存穿透、缓存雪崩
染色法判定二分图
RTKLIB: demo5 b34f. 1 vs b33
VLSM variable length subnet mask partition tips
Edit distance (multi-source BFS)
【GNSS】抗差估计(稳健估计)原理及程序实现
[algorithme] swordfinger offer2 golang question d'entrevue 2: addition binaire
[GNSS data processing] Helmert variance component estimation analysis and code implementation
FairyGUI循環列錶
[rtklib 2.4.3 B34] version update introduction I
[算法] 剑指offer2 golang 面试题3:前n个数字二进制形式中1的个数