这是坚持技术写作计划 (含翻译) 的第 9 篇, 定个小目标 999, 每周最少 2 篇.
背景描述
在公司测试服务器调试 https://www.aliyun.com/product/ahas (Sentinel 商业版)时, 发现频发性无规律的出现 Ahas 控制台[监控详情] 不显示, 甚至应用直接消失的问题.
开始以为是非 Spring boot 应用的问题(因为另外一个产品线是 spring boot 的, 测试没问题), 反复翻看开源 sentinel 的 wiki https://github.com/alibaba/Sentinel/wiki 和商业 ahas 的帮助文档 https://help.aliyun.com/product/87450.html , 并且结合 Sentinel 的日志排查, 毫无头绪. 但是换成开源的 Sentinel Dashboard 没问题
解决步骤
问题原因
上文提到的, Spring boot 可以, 是因为其部署在阿里云 ecs 上, 而阿里云主机默认都有 ntp 同步
而测试机连 Sentinel 的 Dashboard 没问题, 换成 ahas 就有问题, 是因为 Sentinel 的 client 和 dashboard, 部署在同一台服务器, 不存在时间差问题.
后来通过 @乐有 和 @云寅 的帮助, 定位到时钟问题, 据 @乐有 介绍 Sentinel 允许的最大时间误差是 30s, 而实验中, 测试机和北京时间误差超过 55s.
Windows 自动同步时间及修改同步频率
如果同步出错, 可以重启一下 Windows Time 服务, 再次同步.
但是过了半天后, 时钟又差 1 分钟, 所以需要调整一下 NTP 同步频率
打开注册表, 找到 SpecialPollInterval (
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClien\SpecialPollInterval )
发现默认值是 93a80 换成 10 进制是 604800 (7 天 * 24 小时 * 60 分钟 * 60 秒 = 604800) , 改成 300(5*60)即可.
参考资料
Sentinel#Wiki#FAQ
配置 Windows 实例 NTP 服务
使用阿里云 NTP 服务器
招聘小广告
山东济南的小伙伴欢迎投简历啊 加入我们 , 一起搞事情.
长期招聘, Java 程序员, 大数据工程师, 运维工程师, 前端工程师.
来源: https://juejin.im/post/5c81071b6fb9a049d74879ba