线上系统时间慢八个小时的排查之路

Casdoor + OAuth 2.0:一站式构建企业级统一身份认证门户 本文详细介绍了如何使用Casdoor和OAuth 2.0构建企业级统一身份认证门户,解决多系统登录难题。通过核心架构解析、快速接入指南和高级配置实践,帮助企业提升安全性、优化用户体验并降低运维成本。特别适合需要实现单点登录(SSO)的企业IT架构。 阅读详情

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料: 

15162015ae731924603c459f09378491.gif

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号等等功能:

  • Boot 地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

  • Cloud 地址:https://gitee.com/zhijiantianya/yudao-cloud

  • 视频教程:https://doc.iocoder.cn

来源:juejin.cn/post/
7221740907232657468


最近有一个新项目上线,在上线时,突然发现时间与正常时间对不上,少了八个小时;但我丝毫不慌,这不就是个时区的问题吗,简单,但是这一次它给我深深的上了一课,一起来看整个排查过程吧。

开始排查

排查数据库

一般的时区问题都是数据库配置或数据链接参数的配置问题,于是我立马就定位到了问题,应该是数据库的时区设置错了,于是我愉快的查看了数据库时区

❝

命令:show variables like '%time_zone%';

❞

e359778566aa87acfd7755746a6751d3.jpeg

1、system_time_zone:全局参数,系统时区,在MySQL启动时会检查当前系统的时区并根据系统时区设置全局参数system_time_zone的值。值为CST,与系统时间的时区一致。

2、time_zone:全局参数,设置每个连接会话的时区,默认为SYSTEM,使用全局参数system_time_zone的值。

CST时间

CST时间:中央标准时间。CST可以代表如下4个不同的时区:

  • Central Standard Time (USA) UT-6:00,美国

  • Central Standard Time (Australia) UT+9:30,澳大利亚

  • China Standard Time UT+8:00,中国

  • Cuba Standard Time UT-4:00,古巴

再次分析

很显然,这里与UTC时间无关,它只是时间标准。目前Mysql中的system_time_zone是CST,而CST可以代表4个不同的时区,那么,Mysql把它当做哪个时区进行处理了呢?

简单推算一下,中国时间是UT+8:00,美国是 UT-6:00,当传入中国时间,直接转换为美国时间(未考虑时区问题),时间便慢了14个小时。

既然知道了问题,那么解决方案也就有了。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

解决方案

方案一:修改数据库时区

既然是Mysql理解错了CST指定的时区,那么就将其设置为正确的。

连接Mysql数据库,设置正确的时区:

set global time_zone = '+8:00';
set time_zone = '+8:00';
flush privileges;

再次执行show命令查看:show variables like '%time\_zone%';。

这里我选择方案2:修改数据库连接参数

> 基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
>
> * 项目地址:<https://github.com/YunaiV/yudao-cloud>
> * 视频教程:<https://doc.iocoder.cn/video/>

# 原配置
serverTimezone=GMT%2B8
##修改 serverTimezone=Asia/Shanghai 

url: jdbc:mysql://localhost:3306/aurora_admin?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai&autoReconnect=true&rewriteBatchedStatements=true&allowMultiQueries=true

到这里,我想着问题肯定已经解决了;愉快的测了一手;结果还是差八个小时?但是本地项目的时间是正常的啊,我开始有了不祥的预感; 于是我本地连上线上的数据库开始测试,发现时间是正常的。到这里,就基本排查出不是MySQL的问题。

排查 Linux

我开始怀疑是不是 linux 系统的时区有问题;

❝

查看硬件的时间:hwclock --show

❞

c8a87e4519e77cb6e098a3c353c4625e.jpeg

❝

查看系统的时间:date -R

❞

18224ec48d83143992fe62194272a425.jpeg

发现Linux的时间四年没问题的,于是开始查服务器的时区配置 查看时区 TZ配置:echo $TZ

0df26e234772fe74464795aefa7b14fa.jpeg

发现为空,于是查看系统配置;查看系统配置命令:env

dea69b9703b4f6ba58dea76cbcc6f17d.jpeg

发现确实没有 TZ 的配置,系统并未设置TZ变量,而是通过localtime指定时区;于是我修改 localtime的指定。

❝

先删除TZ环境变量:unset TZ

❞

❝

再执行:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 命令etc目录下创建名称是localtime的快捷键指定到上海时区文件上;

❞

修改完成后,果断重启项目测试,结果令人失望,时间依旧没有变化,于是尝试直接加上 TZ配置

❝

命令:export TZ=Asia/Shanghai

❞

再次查看:

9b4b03331c0f160ec20066acb7304723.jpeg

可以看到 TZ配置已经设置成功,到这里我似乎看到了希望;于是再次测试,然后我人傻了,时间依旧少八个小时;到这里,我实在是不知道还有什么是没排查的了,于是脑海里重新过一遍排查的过程。

1、本地连线上的数据库测试是正常的,所以数据库肯定是没问题的 2、项目程序也没问题:@JsonFormat()并没有指定其他时区,字段类型也对的上;3、Linux时间也没问题,时区也设置了;

排查Docker

我突然想到项目是通过Docker 来构建的,难道是Docker内部的时区有问题,这是唯一还没有排查的地方了,于是查看Dockerfile配置文件!

b919e7c95005801b4ea146d707284e67.jpeg

很简单的配置呀,没理由出问题呀,为了保险起见;决定手动给他指定一个时区,最终的配置文件;添加配置:

# 安装tzdata(如果 设置时区不生效使用)
# RUN apk add --no-cache tzdata
# 设置时区
ENV TZ="Asia/Shanghai"
620f2db75cc94be560a9f1c26253b57c.jpeg

重新构建项目运行,再次测试,时间正常了。


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,“长按”或“扫描”下方二维码噢:

9e2ebfbb9e3abd8ee9e752bb8f350fcc.png

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

753555f76a2991f4d1a2de444187f18d.png

ed31787bcdc28d1ed463e5e49874a9ee.png7dce113dec3fcf9fa054a3e686ad89dc.pngddbc2484e439c956c3d518bde4e87cbb.png68c97fd5b8b5d7cece978b3104d92320.png

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
pandas多维聚合与滚动窗口实战:银行级数据分析流水线 多维聚合是数据分析的核心能力,指在多个分组维度上同步计算多种统计指标;其本质是通过索引对齐保障结果一致性,避免传统‘多次groupby+merge’引发的性能衰减与逻辑偏差。滚动窗口则赋予聚合时间敏感性,使均值、最大值等指标具备趋势感知能力,广泛应用于风控监控、实时特征工程等场景。技术价值在于提升计算效率(单次agg比多次groupby快3.8倍)、增强结果可审计性(天然索引对齐)、支撑高并发生产环境(如每秒2000+交易反欺诈)。典型应用场景包括客户价值三维矩阵构建、跨区域行业热力图生成、7日滚动风险指标 阅读详情

相关推荐

ASP.NET MVC工程化实践:性能优化与分层契约落地指南

ASP.NET MVC作为经典Web开发框架,其核心价值在于清晰的分层架构与可扩展性,但真实项目中常因默认配置、松散契约和隐式依赖导致性能瓶颈与维护困难。本文从MVC请求生命周期出发,解析路由调度、模型绑定、动作执行与视图渲染四大关键阶段的底层原理,揭示DefaultModelBinder反射开销、Razor动态编译延迟、IQueryable误用引发N+1等典型技术陷阱。通过引入可量化的分层契约、语义化RESTful路由、DTO不可变设计及预编译视图等工程化手段,显著提升系统响应速度与团队交付效率。适用于金

aobai7842的博客 439

看看人家的快速开发平台,确实清新优雅!

点击上方“芋道源码”,选择“设为星标”管她前浪,还是后浪?能浪的浪,才是好浪!每天 10:33更新文章,每天掉亿点点头发...源码精品专栏原创 | Java 2021超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业调度中间件 E...

芋艿V 2917

LangGraph实战:从状态建模到生产级LLM Agent工程落地

LLM Agent是具备自主规划、工具调用与迭代反思能力的智能体系统,其核心挑战在于状态管理与流程可控性。LangGraph通过显式状态定义(TypedDict)、图结构化编排(DAG/FSM语义)和检查点机制(checkpointer),将Agent从不可调试的黑箱转化为可断点、可压测、可监控的工程实体。相比传统Chain模式的无状态线性管道,LangGraph支持条件分支、人工中断、重试退避与跨会话状态恢复,天然适配客服工单处理、售后决策、多步骤业务流程等真实场景。本文基于2024年Q2最新langgr

Bob1228的专栏 494

芋道快速开发平台的使用心得

项目的管理后台有 4 个版本:yudao-ui-admin-vue3 (opens new window):基于 Vue3 + element-plusyudao-ui-admin-vben (opens new window):基于 Vue3 + vben(ant-design-vue)yudao-ui-admin-vue2 (opens new window):基于 Vue2 + element-ui。

悦涵仙子的技术笔记本 1822

AppFabric Caching 原理与企业级实践:分布式内存协同系统深度解析

分布式缓存是提升.NET企业应用性能与一致性的关键技术,其核心在于内存数据的分区管理、状态协同与变更通知机制。AppFabric Caching并非简单键值存储,而是基于一致性哈希路由、命名缓存策略、Region事件分组和乐观并发版本控制的全栈式内存基础设施。它通过客户端智能路由、本地缓存分层、HA副本同步等设计,在保障低延迟的同时实现跨服务数据协同,特别适用于Session共享、引用数据分发和库存类资源数据强一致性场景。本文结合Windows Server 2008 R2 + .NET Framework

unixboy 355

从零到一:手把手教你用STM32F103C8T6打造个人专属开发板(附立创EDA工程与源码)

本文详细介绍了如何使用STM32F103C8T6微控制器从零开始设计和制作个人专属开发板。内容涵盖硬件选型、原理图设计、PCB布局、功能验证等全流程,并提供了立创EDA工程文件和源码,帮助开发者深入理解STM32开发板的硬件架构与设计要点。

weixin_26802933的博客 285

芋道快速开发平台学习笔记

登录是将用户对象转换成string,使用key-value方式保存到redis中。有个不算bug的buffer,浏览器不会默认勾选http请求头参数tenant-id,需要手动勾选,如果项目不需要,可以在配置中设置忽略该请求,application.yaml。其次检查最外层的pom文件modules的引用是否正确,少引用了mavne会首先从本地服务器查找,本地缺失就会从服务器下载,下载不到就编译报错。城市地区信息保存在area.csv文件,启动时加载到内存,使用AreaUtils.java获取城市信息。

如是所来的专栏 2508

手把手教你编写PCIe设备驱动:基于Linux内核的实战教程

本文详细介绍了基于Linux内核的PCIe设备驱动开发全流程,包括环境准备、设备探测、中断处理、DMA配置等核心内容。通过实战代码示例和Makefile编写指南,帮助开发者快速掌握PCIe驱动开发技术,实现高性能设备驱动开发与优化。

weixin_30687051的博客 193

芋道源码 / yudao-cloud:前端技术架构探索与实践

芋道,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。master分支为 JDK 8 + Spring Boot 2.7,分支为 JDK 17/21 + Spring Boot 3.2管理后台的电脑端:Vue3 提供 element-plus、vben(ant-design-vue) 两个版本,Vue2 提供 element-ui 版本管理后台的移动端:采用 uni-app 方案,一份代码多终端适配,同时支持 APP、小程序、H5!

chenchuang0128的博客 9900

Ubuntu AX200 iwlwifi-cc-46.3cfab8da.0.tgz无法下载的解决办法

AX200 iwlwifi-cc-46.3cfab8da.0.tgz 无法下载网页出问题使用 其他方法来进行但是前提还是有网络。

chen20170325的博客 1039

华为昇腾Atlas200DK. CANN模型推理——目标检测结果不对(无检测结果)的问题解决

目录前言问题描述问题排查1.后处理模块问题排查2.预处理模块问题排查3.模型问题排查4.算法bug问题排查5.AI板卡问题排查6.模型精度问题排查6.模型推理问题解决:模型输入数据与预处理不同后记 前言 上周我在华为昇腾Atlas200DK中部署nanodet和yolov5时,出现了目标检测结果不对(没有检测到任何物体),困扰了整整三天,最后找到原因并圆满解决,在这里记录一下debug过程。 以上测试均在python中完成。 问题描述 第一天上午,我首先将nanodet由pytorch的.pth模型转换为.

qq_41035283的博客 5604

国内开源框架(快速开发,避免重复造轮子)

多一点快乐!!!

IT小辉同学 6198

华为防火墙双线路配置实战:5分钟搞定主备自动切换(含健康检查避坑指南)

本文详细介绍了华为防火墙双线路配置实战,包括主备自动切换和健康检查机制的优化技巧。通过智能健康检查机制,华为防火墙能实现毫秒级故障自动切换,确保网络高可用性。文章提供了从架构设计到实战配置的全流程指南,并分享了常见配置误区与解决方案,帮助中小企业快速搭建稳定可靠的网络架构。

weixin_30872337的博客 605

pandas多维聚合实战:滚动窗口与自定义逻辑的工程化落地

多维聚合是数据分析的核心能力,指在多个分组维度上同步执行统计计算的技术范式;其底层依赖高效分组索引与向量化运算,技术价值在于避免重复扫描、降低内存开销并保障结果一致性;典型应用场景包括金融风控中的客户行为分析、商户分级运营及动态监管指标计算;区别于基础groupby,真实业务要求融合滚动窗口(如7日均值)、自定义业务逻辑(如交易波动率)与多级索引重塑;本文聚焦pandas中agg、rolling、expanding与unstack的协同使用,结合银行反欺诈、偿付能力监测等生产案例,详解如何将模糊需求转化为稳

weixin_30652897的博客 540

10倍开发者的 Dify 魔法书:从零构建全栈 AI 应用

“不懂底层算法,也能开发爆款 AI 应用吗?” 答案是:绝对可以。 Dify 正在重新定义 AI 应用的开发范式——通过可视化的低代码平台,将原本需要数周的开发周期压缩到几小时。无论你是前端、后端、产品经理,还是渴望破局的独立开发者,这都是你不可错过的红利。 我们将手把手教你利用 Dify 快速接入百模大战,零代码搭建企业级知识库,并一键发布你的专属 AI 助手、智能客服和自动化工作流。 告别重复造轮子,掌握 Dify,一个人就是一支 AI 团队。现在上车,开启你的 10 倍速开发之旅!

davidwang456的专栏 683

基于matlab的轴承损伤分析动力学建模仿真

高质量的轴承在正确的使用下,可以使用很长一段时间,如果过早的出现损伤,很可能是因为选型错误,使用不当或润滑不良造成的。因此,在安装轴承时,我们需要记录机器种类,安装部位,使用条件及周围配合。通过研究总结轴承损伤的类型,发生问题时的使用环境,以避免类似情况再次发生。轴承损伤方式按下述图片分类,我们可以图片中显示的主要特征来判断轴承损伤形式。01、压痕碰伤卡入固体异物或冲击造成的表面凹坑及安装是的擦伤◆固体异物侵入◆在倾斜状态下安装◆安装不良造成的撞击,脱落◆卡入剥离片◆改善安装、使用方法。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 2667

哥大免费AI工程课:PyTorch生产级训练与推理实战指南

AI模型部署不是终点,而是工程挑战的起点。从分布式训练的NCCL通信瓶颈、梯度检查点显存优化,到模型量化中的BatchNorm统计污染、torch.compile图编译调优,再到FastAPI服务中GPU计算流与异步调度的错配问题——这些真实场景中的技术矛盾,构成了现代PyTorch工程的核心命题。本文聚焦AI系统层(Model-to-Infrastructure)的关键落地环节,深入解析内存效率、推理延迟、精度稳定性等硬性指标背后的原理与权衡。特别涵盖PyTorch 2.x原生能力如torch._dyna

ainixi7099的博客 436

SerDes系列之 SSC扩频时钟技术

扩频时钟,又称展频(SSC-Spread Spectrum Clocking),当前PCIE、DDR、USB等几乎所有的高速接口都支持SSC的功能。电子工程师在日常的电气测试中经常与之接触,在电磁传导和辐射发射验证过程中,经常需要使用到芯片的SSC功能,它的物理表现形式,就是信号的比特率会在一个很小的范围内浮动,多见于周期性变化的时钟信号。

一只豌豆象的博客 3442

Pandas多维聚合实战:从银行风控看业务驱动的数据压缩术

多维聚合是数据分析的核心能力,指在时间、地域、品类、客群等多个业务维度上对原始流水数据进行结构化汇总。其原理基于向量化分组计算与窗口状态缓存,技术价值在于以极简代码实现高可读、强扩展、易审计的指标生产。典型应用场景包括金融风控中的欺诈阈值校准、电商运营的用户活跃拐点预警、SaaS产品的客户生命周期价值(CLV)建模。本文聚焦pandas中agg、rolling、expanding、unstack四大核心方法的生产级用法,结合银行级风控案例,详解如何将散装交易流水压制成支撑决策的‘燃料’,真正实现面向业务场景

dihuangxiu8828的博客 331

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

6.见过最强的后台管理系统

以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。架构图管理后台的 Vue3 版本采用 vue-element-plus-admin ,Vue2 版本采用 vue-element-admin管理后台的移动端采用 uni-app 方案,一份代码多终端适配,同时支持 APP、小程序、H5!后端采用 Spring Boot、MySQL + MyBatis Plus、Redis + Redisson。

weixin_JimZemlin的博客 1890

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

芋道 ruoyi-vue-pro v1.8.0 发布:重构支付中心,提供支付接入实战

以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。有任何问题,或者想要的功能,可以在Issues中提给艿艿。😜 给项目点点 Star 吧,这对我们真的很重要!

Jdjdjjdjdjdje的博客 2222

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

芋道快速开发平台终极使用指南:5分钟从零到精通

芋道快速开发平台是一个基于Spring Boot + Vue & Element的开源项目,专为开发者打造的一流快速开发解决方案。作为一款功能强大的开源项目使用平台,它能够帮助开发者快速构建企业级管理系统,大幅提升开发效率。本文将为您提供完整的快速上手教程,深入解析项目结构,并分享配置管理方法,让您在5分钟内掌握核心功能。 ## 🏗️ 模块化架构深度解析 芋道平台采用清晰的多模块架构设计,让

gitblog_01025的博客 1107

芋道源码/RuoYi-Vue-Pro:新一代企业级快速开发平台的深度解析

随着企业数字化转型的加速,快速开发平台成为提升研发效率的关键工具。本文深度解析基于Spring Boot + Vue的开源项目芋道源码/RuoYi-Vue-Pro,从架构设计、功能特性、技术选型三个维度剖析其成为企业级开发首选的技术内核。通过对比传统开发模式,揭示该平台如何实现5-10倍的开发效率提升,为技术决策者提供选型参考。

chenchuang0128的博客 911

芋道源码 ruoyi-vue-pro:企业级快速开发平台新标杆

企业级项目开发周期长、架构复杂、功能模块繁多? 多端适配(PC端、移动端、小程序)难度大,开发成本高? 权限管理、工作流、支付系统等基础功能重复开发,效率低下? 项目性能优化、安全防护、可扩展性设计缺乏成熟方案? **ruoyi-vue-pro(芋道源码)** 一站式解决这些痛点!作为 RuoYi-Vue 全新 Pro 版本,它基于 Spring Boot + MyBatis P...

gitblog_01407的博客 1255
上一篇: 重磅推荐!一款好用又好看的流程图编辑框架
下一篇: 大厂都在用的Git代码管理规范
公众号-芋道源码
博客等级 码龄10年 1631粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值