springCloudAlibaba组件-Nacos-服务配置(四)

文章目录

  • 配置中心说明
    • 配置文件以及配置文件的读取顺序
      • 配置的两种方式
      • 问题

配置中心说明

配置:

在系统开发过程中,开发者通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成。配置变更是调整系统运行时的行为的有效手段。

配置中心优点:
1.动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。

2.动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。

3.配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。

配置文件以及配置文件的读取顺序

具体的配置读取顺序如下:

1.本地配置文件:Nacos客户端首先会检查本地是否存在缓存的配置文件,通常在启动时会将最近一次获取的配置文件保存到本地。如果本地存在缓存的配置文件,则直接读取缓存的配置文件内容,并使用该配置信息。

2.本地缓存文件:如果本地配置文件不存在或已过期,Nacos客户端会尝试从本地缓存文件中读取配置。本地缓存文件是在前一次从服务端获取最新配置时保存的,包含了最新的配置信息。

3.cacheData缓存数据:如果本地缓存文件也不存在或已过期,Nacos客户端会从内存中的cacheData缓存数据读取配置。cacheData是一个内存缓存,保存了最近一次从服务端获取的配置信息。

4.服务端获取:如果以上三种情况都没有满足,则客户端会向Nacos服务端发送请求,获取最新的配置信息。客户端通过与服务端的通信来获取到最新的配置。

配置的两种方式

1.客户端主动获取
客户端:

1)优先从本地配置中获取
2)本地配置中没有则会去服务端获取,发送请求
3)服务端异常且异常不是因为鉴权失败,则从本地缓存文件中获取

服务端:
	读数据库与配置文件

2.长轮询更新
客户端:
初始化两个组件,
一是网络组件,也就是http数据处理的(起作用的是ServerHttpAgent)
二是客户端的长轮询ClientWorker 使用定时任务
配置文件处理

问题

主动获取方式与长轮询方式的区别?
主动获取方式是指客户端定时向配置中心发送请求,主动获取最新的配置文件内容。客户端可以设置一个固定的时间间隔来发送请求,例如每隔10秒请求一次配置文件内容。这种方式的优点是简单直接,适用于配置文件变更频率较低的场景。缺点是可能会产生较多的无效请求,增加了系统的负载。
长轮询方式是指客户端发送请求给配置中心,如果配置文件有变更,则立即返回配置文件内容,并在一定时间内保持连接,等待下一次变更。客户端可以设置一个较长的连接超时时间,例如30秒。如果在超时时间内配置中心没有变更,则返回一个空响应,客户端根据空响应判断是否重新请求。这种方式的优点是能够实现配置文件的实时更新,减少了无效请求。缺点是增加了连接开销和网络请求频率。
所以,主动获取方式适合配置文件变更频率较低的场景,简单直接;而长轮询方式适合配置文件变更频率较高,且需要实时更新的场景,可以减少无效请求,增强了实时性。在选择使用哪种方式时,需要根据具体业务需求和性能要求做出评估。

你可能感兴趣的:(java,微服务,开发语言)