当前位置:网站首页>阿里云微服务(二) 分布式服务配置中心以及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之间的同步来保证数据的一致性
边栏推荐
- VLSM variable length subnet mask partition tips
- [algorithm] sword finger offer2 golang interview question 8: the shortest subarray with a sum greater than or equal to K
- 服务未正常关闭导致端口被占用
- Role movement in the first person perspective
- Novatel board oem617d configuration step record
- rtklib单点定位spp使用抗差估计遇到的问题及解决
- FairyGUI增益BUFF数值改变的显示
- 编辑距离(多源BFS)
- [algorithm] sword finger offer2 golang interview question 12: the sum of the left and right sub arrays is equal
- WSL common commands
猜你喜欢
Basic DOS commands
[dry goods] cycle slip detection of suggestions to improve the fixed rate of RTK ambiguity
[algorithm] sword finger offer2 golang interview question 10: subarray with sum K
几道高频的JVM面试题
Mysql database reports an error: row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT=DY
rtklib单点定位spp使用抗差估计遇到的问题及解决
[算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等
FGUI工程打包发布&导入Unity&将UI显示出来的方式
编辑距离(多源BFS)
Mixed use of fairygui button dynamics
随机推荐
FairyGUI增益BUFF数值改变的显示
FairyGUI条子家族(滚动条,滑动条,进度条)
平衡二叉树详解 通俗易懂
记录:newInstance()过时的代替方法
Exception: ioexception:stream closed
3月15号 Go 1.18 正式版发布 了解最新特色以及使用方法
Novatel board oem617d configuration step record
如何保障 MySQL 和 Redis 的数据一致性?
Matlab读取GNSS 观测值o文件代码示例
Edit distance (multi-source BFS)
[算法] 劍指offer2 golang 面試題2:二進制加法
【rtklib】在rtk下使用抗差自适应卡尔曼滤波初步实践
How to reduce the shutdown time of InnoDB database?
堆排序【手写小根堆】
rtklib单点定位spp使用抗差估计遇到的问题及解决
【GNSS】抗差估计(稳健估计)原理及程序实现
Heap sort [handwritten small root heap]
MySQL backup -- common errors in xtrabackup backup
[dry goods] cycle slip detection of suggestions to improve the fixed rate of RTK ambiguity
抗差估计在rtklib的pntpos函数(标准单点定位spp)中的c代码实现