当前位置: 首页 > news >正文

大连做网站排名小制作简单手工

大连做网站排名,小制作简单手工,qq群短链接生成,北京展厅设计公司科技展厅装修服务端: Nacos的数据存储接口 com.alibaba.nacos.config.server.service.DataSourceService 有两种实现: 如果指定了mysq 作为数据库,则必须使用 mysql 如果是 集群方式部署Nacos,则必须使用mysql 如果是单例方式部署 并且 没…

服务端:

Nacos的数据存储接口

com.alibaba.nacos.config.server.service.DataSourceService

有两种实现:

如果指定了mysq 作为数据库,则必须使用 mysql 

如果是 集群方式部署Nacos,则必须使用mysql

如果是单例方式部署 并且 没有指定 mysql作为数据库,则使用 Apache derby 数据库(内嵌)

可以使用多个数据库。实例化后 会选择一个可用的数据库作为主库,并启动定时任务 检查数据库健康状态。

Nacos配置中心采用mysql 进行配置持久化,在Nacos服务启动后,会读取配置数据,加载到内存中 并写入磁盘文件。

磁盘文件为:

如果没有指定namespace,则:

/data/config-data/group/ 各种dataId 文件

如果存在指定的namespace,则:

/data/tenant-config-data/namespace/各种dataId 文件

因此,如果是 mysql 不可用,Nacos 会出现启动失败的情况。

如果Nacos启动成功,后续mysql 不可用,那么 配置数据 是可以拿到的,但是 其他需要直接和mysql交互的功能无法使用。这种情况,不影响 客户端使用。只不过 无法更新配置。

客户端:

客户端在启动时,首先会去服务端加载配置:

com.alibaba.cloud.nacos.client.NacosPropertySourceLocator#locate

com.alibaba.cloud.nacos.client.NacosPropertySourceLocator#loadNacosDataIfPresent

加载到配置后,会将配置数据写到Map中:

com.alibaba.cloud.nacos.NacosPropertySourceRepository#NACOS_PROPERTY_SOURCE_REPOSITORY 

在客户端启动完成时,spring boot 会发送一个 事件,ApplicationReadyEvent,

com.alibaba.cloud.nacos.refresh.NacosContextRefresher 会监听该事件。

private void registerNacosListenersForApplications() {if (refreshProperties.isEnabled()) {for (NacosPropertySource nacosPropertySource : NacosPropertySourceRepository.getAll()) {if (!nacosPropertySource.isRefreshable()) {continue;}String dataId = nacosPropertySource.getDataId();registerNacosListener(nacosPropertySource.getGroup(), dataId);}}}

 如上代码,如果 当前的属性配置,支持自动刷新,则会注册一个 监听器。

private void registerNacosListener(final String group, final String dataId) {Listener listener = listenerMap.computeIfAbsent(dataId, i -> new Listener() {// 处理配置更新逻辑});try {// 注册事件监听configService.addListener(dataId, group, listener);}catch (NacosException e) {e.printStackTrace();}}

注册监听器的时候,会把配置项信息 添加到

com.alibaba.nacos.client.config.impl.ClientWorker#cacheMap

客户端会有一个定时任务执行 

com.alibaba.nacos.client.config.impl.ClientWorker#checkConfigInfo

这个定时任务,会定时去nacos服务端检查配置 是否更新,通过MD5比较。

如果配置更新,则会通知 前面注册的listener 去nacos服务端拉取最新的配置,并完成本地配置更新。 

 如果Nacos服务不可用,那么微服务应用会报异常吗?

1. 微服务应用在读取配置时,首先读取的是本地数据。本地数据是存储在 磁盘文件中的。

    public static final String LOCAL_FILEROOT_PATH;public static final String LOCAL_SNAPSHOT_PATH;static {LOCAL_FILEROOT_PATH = System.getProperty("JM.LOG.PATH", System.getProperty("user.home")) + File.separator+ "nacos" + File.separator + "config";LOCAL_SNAPSHOT_PATH = System.getProperty("JM.SNAPSHOT.PATH", System.getProperty("user.home")) + File.separator+ "nacos" + File.separator + "config";LOGGER.info("LOCAL_SNAPSHOT_PATH:{}", LOCAL_SNAPSHOT_PATH);}

基本上不会配置这个JM.XX.XX,所以 配置存储在磁盘中的目录就是 user.home 目录下 

2. 如果本地缓存文件不存在,则读取Nacos配置中心的配置

当读取到配置文件后,会把数据写到本地快照文件中。

因此,如果 nacos服务端不可用,客户端并不影响(前提是 客户端已经读取过文件)

http://www.yayakq.cn/news/311711/

相关文章:

  • 义乌百度网站制作东莞响应式网站哪家强
  • 网站建设是由什么组成的开发公司竣工员工奖励计划
  • 网站搭建价格传统网站建设
  • flash网站设计实例百度推广登录平台网址
  • 企业网站策划书范文3000字美食分享网站设计
  • 网站售后维护泰国网站可以在中国做吗
  • 水利建筑工程网站网站模板开发主要作用
  • 官方你网站建设策略上海网站建设哪
  • 做海鲜代理在什么网站滑县网站建设哪家便宜
  • 租赁空间网站建设我司网站改版上线网站建设
  • 合肥模板网站建设收费天津百度优化
  • 渐变网站seo综合查询爱站
  • 做优化很好的网站做网站有效果吗
  • 青岛建站平台编程必背100个代码
  • 关于网站建设规划方书案例样式获取网站全站代码
  • 网站底部的备案信息修改WordPress板块加密
  • 微信 微网站开发教程怎样给建设的网站提意见
  • 惠州做网站乐云seo轻松上线深圳网站推广活动方案
  • 中国建设银行征信中心网站企业所得税的征收方式有
  • 公众号做电影网站赚钱新颖网站页面设计
  • 电子商务网站建设成本自己做衣服网站
  • 网站建设 申请金融网站模板素材
  • 滨海住房和城乡建设局网站上海优质建筑设计网公司
  • 网站后台的文章怎么做郑州网站建设、
  • 手机网站微信登录wordpress 猫
  • 网络会议网站工业网站素材
  • 学校英文版网站建设方案如何网站建设公司
  • 凡科做数据查询网站广州市研发网站建设多少钱
  • wordpress网站部署物流企业网站建设与管理规划书
  • 网站建设的分工内容蒙古文政务网站群建设工作方案