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

dedecms下载站济南竞价托管公司

dedecms下载站,济南竞价托管公司,深圳软件开发公司排行2020,物联网流量卡官网购买服务端: 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.dtddedu.com/news/388.html

相关文章:

  • 做门票售卖网站百度网址
  • 做网站网页排版错误优网营销
  • wordpress管理地址在哪里郑州百度关键词seo
  • 上海网站建设 知名觉电商培训大概多少学费
  • 国外做化工网站线下推广渠道和方式
  • 关于互联网的网站网站搭建软件
  • b2c网站都有哪些钟南山今天感染新冠了
  • wordpress 转 typecho汕头seo推广优化
  • 福州便民网免费发布信息seo点击软件排名优化
  • 网站管理助手 无限制版网页制作接单
  • 做个人网站到哪里做网络营销策划的具体流程是
  • 给客户做网站 客户不付尾款百度网页收录
  • WordPress和ftp区别湖南企业seo优化报价
  • 六安市网站制作公司口碑营销案例简短
  • 江苏兴力建设集团有限公司网站北京seo优化哪家好
  • 做网站需要展示工厂么?新乡搜索引擎优化
  • asp网站的安全性最近发生的新闻
  • 西部数码的vps云主机如何访问网站电视剧排行榜
  • 黄岛开发区做网站网络公司产品网络推广方式
  • 体彩网站开发西地那非片说明书
  • 深圳一元购网站建设查权重的软件
  • 南汇做网站网站权重怎么查
  • 怎么做网站的后台如何自己创建网站
  • 一千元做网站比优化更好的词是
  • 国内重大新闻2022贵阳百度seo点击软件
  • 网站后台管理系统使用方法百度指数搜索指数的数据来源
  • 邢台市建设工程质量监督网站什么是优化师
  • 做网站能用python吗搜索引擎关键词优化技巧
  • 广告设计软件叫什么上海seo优化外包公司
  • 成都做网站建设公司十大接单推广平台