-
我的分布式服务时不时冒出莫名其妙的错——JWT 明明没过期却被判过期、跨节点的日志时间对不上、限流和缓存过期也乱套,排查半天才发现是集群里几台机器的时钟悄悄漂移了、各自的现在几点根本不一样的深度复盘
我有套分布式服务跑在好几台机器上,某段时间开始系统时不时冒出毫无规律又对不上号的错:有的用户带着明明没过期的 JWT 却被判令牌已过期、有的又用着本该过期的令牌畅通无阻;把几台机器日志按时间拼一起时间戳乱七八糟因果颠倒;基于时间的限流忽松忽紧、缓存有的提前过期有的迟迟不过期。这些错散落各处看着不相关,我查认证查缓存都没毛病。直到同时登上几台机器敲 date 才倒吸凉气:这几台机器系统时间各不相同,…- 0
- 0
-
我用雪花算法生成分布式订单 ID,跑了大半年一直好好的,某天凌晨服务器自动校了一次时、把时钟往回拨了几毫秒,雪花算法当场抛异常拒绝生成 ID、订单全下不了的深度复盘
我用雪花算法(Snowflake)生成分布式唯一订单 ID(靠毫秒时间戳+机器ID+序列号拼出全局唯一且大致递增的 ID),跑了大半年稳得很。可某天凌晨突发:一段时间内所有下单都失败,日志全是雪花算法抛的 Clock moved backwards 时钟回拨异常,几分钟后又自己恢复。排查发现那台服务器凌晨做了一次 NTP 自动校时、把系统时钟往回拨了几毫秒,而雪花算法检测到当前时间小于上次生成 I…- 0
- 0
-
服务器时间差了 8 小时:一次 Linux 时区配置与时间认知的复盘
新买的云服务器配了个每天凌晨 3 点跑的归档任务 cron 写的 0 3 * * *,上线第二天发现它竟在上午 11 点跑撞上业务高峰,登服务器敲 date 显示的时间比北京时间整整慢 8 小时。排查梳理:服务器时间一点没错它连着 NTP 对时指向的绝对时刻和手机分毫不差,差的不是时间是时区这台云主机出厂默认时区是 UTC,同一个时刻用 UTC 这把尺子读是 19 点用北京时间 UTC+8 读是次…- 0
- 0
-
两台机器时间差了 5 分钟:一次 Linux 服务器时钟与 NTP 排查复盘
两个服务 A 调 B,A 签了时间戳的令牌,B 校验时老报"令牌时间戳超出允许范围",两边代码都没改,差值稳定在 5 分钟。SSH 上两台机器各敲 date 才发现时间差了整整 5 分钟。排查梳理:服务器时间不是绝对准的,它靠晶振计时晶振有误差会持续漂移,每天悄悄快或慢几秒累积成大偏差;时间不对先定性,date -u 比 UTC 分清是时区错的显示问题,还是时刻错连 UTC 都…- 0
- 0
-
两台服务器时间差了 8 分钟:一次 Linux 时间同步与 NTP 排查复盘
一套分布式系统跑在两台机器上,定时任务偶尔重复跑、多机日志顺序错乱,一查两台机器系统时间差了将近 8 分钟,可时区都对、手动 date -s 改对后过几天又慢了。排查梳理:时间不是配置而是会自己流动且流得不准的东西,机器靠石英晶振计时必然会漂,一台机器时间准不准取决于有没有东西持续校它;date -s 是一次性的还会造成时间跳变甚至倒退,让定时任务漏跑重跑;机器上有系统时钟和硬件时钟 RTC 两个…- 8
- 0
-
日志时间差了 8 小时:一次 Linux 系统时间与时区排查复盘
服务日志时间戳比真实时间晚 8 小时,以为时间不准装了 NTP 同步成功,date 一看还是差 8 小时。排查梳理:你看到的时间是 UTC 绝对时刻加时区翻译两层叠加,NTP 校的只是时刻、时区设错它治不了;timedatectl 一条命令看清时刻时区与 NTP 状态、set-timezone 改时区;系统钟与硬件钟两个时钟、hwclock --systohc 对齐;chrony 配 NTP 服务…- 0
- 0
-
两台机器日志时间差了 8 秒:一次 Linux 时间同步与 chrony 排查复盘
一个请求在 B 服务的日志里"收到"早于在 A 服务"发出",日志时间戳自相矛盾。排查梳理:系统时钟与硬件时钟、晶振漂移与 NTP 持续校准、chrony 的 tracking 与 sources 体检、时区错与时钟漂的区别、时间跳变的次生灾害,以及一套时间同步排查纪律。- 0
- 0
NTP
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!







