BeatReactor这个类则维护了一个线程池:

当调用BeatReactor.addBeatInfo(groupedServiceName, beatInfo)方法时,就会执行心跳:

public void addBeatInfo(String serviceName, BeatInfo beatInfo) {NAMING_LOGGER.info("[BEAT] adding beat: {} to beat map.", beatInfo);String key = buildKey(serviceName, beatInfo.getIp(), beatInfo.getPort());BeatInfo existBeat = null;//fix #1733if ((existBeat = dom2Beat.remove(key)) != null) {existBeat.setStopped(true);}dom2Beat.put(key, beatInfo);// 利用线程池,定期执行心跳任务,周期为 beatInfo.getPeriod()executorService.schedule(new BeatTask(beatInfo), beatInfo.getPeriod(), TimeUnit.MILLISECONDS);MetricsMonitor.getDom2BeatSizeMonitor().set(dom2Beat.size());
}

心跳周期的默认值在com.alibaba.nacos.api.common.Constants类中:

可以看到是5秒,默认5秒一次心跳。

Nacos源码BeatReactor相关推荐

  1. Nacos源码系列—关于服务注册的那些事

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 nacos,即可免费获取源码 简介 首先我们在看Nacos源码之前,要 ...

  2. Nacos源码系列——第三章(全网最经典的Nacos集群源码主线剖析)

    上两个章节讲述了Nacos在单机模式下的服务注册,发现等源码剖析过程,实战当中 其实单机是远远不够的,那么Nacos是如何在集群模式下是如何保证节点状态同步,以及服 务变动,新增数据同步的过程的!   ...

  3. Nacos源码系列——第一章(Nacos核心源码主线剖析上)

    在讲具体的源码之前,我有几点想说明下,很多开发可能觉得源码不重要,甚至觉得互联网 的知识,目前够用就可以,也不需要多么精通.的确,在大多数的公司中,你能用你的知识 解决问题就可以,不一定非要涉及到源码 ...

  4. 全网最火的Nacos源码构建,你找不到第二个有我仔细的!!

    本章开始带大家构建Nacos源码,后面我会开始分析Nacos源码的细节,结合本人在工作之余用到的Nacos点点滴滴,如果想和我一起学Nacos,就好好看这篇吧,废话不多说,先告诉你们Nacos怎么通过 ...

  5. 下载Nacos源码并运行

    要研究Nacos源码自然不能用打包好的Nacos服务端jar包来运行,需要下载源码自己编译来运行. 下载Nacos源码 Nacos的GitHub地址:GitHub - alibaba/nacos: a ...

  6. nacos 启动_【Nacos源码之配置管理 一】阅读源码第一步,本地启动Nacos

    前言 在我们去阅读Nacos源码之前,我们得先了解Nacos是干嘛的,以及怎么用,这样有利于我们更容易去理解源码; 查看Nacos的官方文档,我们知道Naocs主要有以下特性: 配置中心 服务注册与发 ...

  7. 如何访问集群中指定的服务器,【Nacos源码之配置管理 六】集群模式下服务器之间是如何互相感知的...

    前言 我们用Nacos当配置中心的时候,上一篇文章中 [Nacos源码之配置管理 五]为什么把配置文件Dump到磁盘中 知道了,所有的配置文件都会Dump到服务器的本地磁盘中, 那么集群模式下: 服务 ...

  8. (Nacos源码解析五)Nacos服务事件变动源码解析

    Nacos源码解析系列目录 Nacos 源码编译运行 (Nacos源码解析一)Nacos 注册实例源码解析 (Nacos源码解析二)Nacos 服务发现源码解析 (Nacos源码解析三)Nacos 心 ...

  9. nacos源码修改编译(亲测)

    nacos源码修改编译 文章目录 nacos源码修改编译 内容概述 源码修改 源码编译 测试 内容概述 生产项目选型时选择nacos作为项目的注册中心,但是由于内网安全要求,用户名和密码必须加密传输, ...

最新文章

  1. iOS开发系列--通知与消息机制
  2. Oracle之物化视图
  3. 计算机科学与技术在线阅读,TL2011计算机科学与技术.pdf
  4. 如何让控件span的id调用ajax_微服务架构之「 调用链监控 」
  5. 机器学习入门04-线性回归原理与java实现多元线性回归
  6. 用python随机生成5000个网址_使用Python脚本生成随机IP的简单方法
  7. BZOJ3884 上帝与集合的正确用法 【欧拉定理】
  8. ldconfig 和 ldd 命令用法
  9. 肚子上挂张画就能隐身:AI完全看不出我在哪,更看不出我是人类了 | 开源
  10. 一款PO VO DTO 转换神器,求求你别在到处找工具类了!
  11. (转)关于oracle表空间的规划方法
  12. SQL Server 2012 下载和安装教程
  13. matlab求含参数一元三次方程,matlab 求解一元三次方程,带其他参数
  14. IBDP1 经济好学吗?学习建议分享
  15. php后端自学,【后端开发】自学php有哪些好的方法
  16. Python开发mysql和mongo 连接类
  17. html防止恶意广告,如何拦截恶意网页和弹窗广告?解决方法
  18. 计算机语言市场份额,21年7月编程语言排名:python上升迅速,others占比最高
  19. AbstractHandlerMapping$PreFlightHandler can‘t be cast to springframework.web.method.HandlerMethod
  20. Matlab中出现“位置1处的索引超出数组边界(不能超过1)”

热门文章

  1. padding与margin的差别
  2. Redis.conf常见配置介绍
  3. fuse的API修改
  4. 随时间的反向传播算法 BPTT
  5. 洛谷P2995奇数偶数
  6. SmartGit破解方法
  7. Spring MVC初始化参数绑定
  8. 你写的前端到底用没用到这些
  9. 【Hibernate】hibernate实体关系映射——单边的多对多关系
  10. 记录一下pom文件scope各种配置所作的行为