一个Java程序员解决一个BUG的艰难历程

问题背景

昨天,项目经理半夜给我发了一个BUG,说是在集成平台上面,我们的应用无法跳转,让我今天早上看看。应用是做了单点登录,登录用户从第三平台通过接口获取信息的,我猜测大概率是用户获取不到,第三个接口存在问题吧。

日志排查

登录服务器打开,应用的日志界面,重新登录第三方平台,点击跳转到我们的应用,果然是获取用户信息的接口报错了,获取不到用户信息无法登陆。
查看报错日志

获取当前的值为:{"msg":"1timestamp expire... now:1704890293245,req:1704889561000","code":401,"requestId":"xxxxxxx"}

从对方接口返回来看是时间超期了,这就很奇怪了,我写这个接口的时候是直接拿当时时间去请求的,正常情况下不应该过期。

突然想到可能是服务器时间是错的,导致我们请求接口失败,使用了date命令查看,果然时间慢了12分钟,问题找到了就很容易解决。

我又用hwclock --show查看了一下硬件的时间,发现是正常的,那就更容易解决了。

我用以下的命令将硬件时钟时间设置为当前系统时间。

hwclock --hctosys

如果要将系统时间写入到硬件时钟时间

hwclock --systohc

我们也可以自定义系统时间/硬件时钟时间

date -s "2024-01-11 12:12:00"hwclock --set- -date="2024-01-11 12:12:00"

设置完成之后,重新点击我们的应用,跳转成功。

问题其实到这里已经解决了,但是为啥说是艰难呢

同步服务器时钟源

背景知识准备

我将BUG修复结果和出现原因报告给项目经理,同时我说正常我们内部服务器都会把某个服务器当做时钟源用来同步时间,但是这次不成功,正常我们所有服务器都会弄的。

刚好我们公司的系统工程师离职了,然后项目经理觉得这个也不难,就让我把同步时钟源弄好。我虽然是个Java程序员,但是在小公司里前后端、服务器都搞过,想着这个不难就应下来了。

想着就是简单的ntpdate一把刷就好,然后发现
在这里插入图片描述
然后安装吧,发现在内网不能连外网在线安装,那就离线安装,找到一个不错的网站https://pkgs.org/可以用来离线下载安装包。

找了一个centos版本的安装ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm,但是缺少依赖无法安装,然后找了依赖安装,还是不行,我想着可能是版本问题,查看一下服务器的版本。

然后我就用

cat /etc/redhat-release

在这里插入图片描述
懵逼了这个是啥。问一下AI吧

Anolis OS 8.4是龙蜥操作系统的一个版本,这个版本在Anolis OS 8.2之后发布。它继承了Anolis OS对多计算架构的支持,包括x86_64和aarch64,并且搭载了双内核RHCK(RHEL Compatible Kernel)和ANCK(OpenAnolis Cloud Kernel)。其中,ANCK是由社区Cloud Kernel SIG组基于上游4.19 LTS kernel研发的,可以提供更强大的稳定性、性能和隔离能力。此外,Anolis OS 8.4还提供了CentOS系统到Anolis OS的迁移工具,以帮助用户更顺滑地进行系统及应用的迁移。

不是很了解,再问一下

Anolis OS release 8.4应该安装哪个版本的ntpdate

Anolis OS 8.4中,由于不再默认支持ntp软件包,时间同步将由chrony来实现。chrony是一个免费开源的工具,它可以通过NTP服务或类似GPS时钟接收器的硬件级参考时钟来同步系统时钟,进而提供更准确的系统时间。如果你习惯了使用ntpdate来同步时间,可能需要一些时间去适应chrony。但请注意,考虑到Anolis OS 8.4已经集成了chrony,推荐你使用chrony进行时间同步。

竟然不能使用ntpdate,让我使用chrony,这个又是啥,再问问

Chrony是一个开源的自由软件,它是网络时间协议(Network Time Protocol,NTP)的一种实现,可以提供保持系统时间与NTP时钟服务器同步的服务。Chrony专为间歇性互联网连接的系统设计,不过也能良好应用于持久互联网连接的环境。
Chrony主要由两个程序组成:chronyd和chronyc。chronyd是在系统后台运行的服务进程,主要负责调整系统时间并与NTP服务器进行时间同步;而chronyc则是一个用于管理chrony服务的命令行工具,可以用来查看和控制chronyd的行为。

然后看一下服务器是否安装了chrony
在这里插入图片描述
发现服务器是有的,那就再AI一下,问一下这个怎么操作

chrony是一个用于时间同步的守护进程,它可以在Linux系统上提供精确的时间同步。以下是一些常用的chrony操作:

  1. 安装chrony:
sudo yum install chrony -y
  1. 启动chrony服务:
sudo systemctl start chronyd
  1. 设置开机自启动chrony服务:
sudo systemctl enable chronyd
  1. 查看chrony服务状态:
sudo systemctl status chronyd
  1. 手动同步时间:
sudo ntpdate pool.ntp.org
  1. 查看当前系统时间:
date
  1. 查看chrony服务器列表:
chronyc sources
  1. 添加外部NTP服务器:
sudo chronyc server <server_ip> iburst
  1. 删除外部NTP服务器:
sudo chronyc server <server_ip> off
  1. 更新系统时间:
chronyc -a makestep 
  1. 查看当前系统时间:
chronyc tracking
  1. 显示每个时间同步源的详细信息:
chronyc sources -v 

实际操作

配置时钟源

vim /etc/chrony.conf

添加服务器同步时钟源

server <服务器同步时钟源IP地址> iburst

重启服务

systemctl restart chronyd

更新时间

chronyc -a makestep 

在这里插入图片描述
在这里插入图片描述
已经正常解决了。

总结

现在AI已经很厉害了,大家可以多去用用,真的能提高效率,但是作为程序员,其实还是比较好甄别信息是否准确,直接拿来运行,能解决问题就是可以的。

现在Java程序员越来越不值钱了,我们公司是一个小公司,作为Java程序员也不能只做后端服务,前端、服务、测试都要懂,都要熟练,为了生活,增强点自我技术,苟着吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/235408.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测-One Stage-EfficientDet

文章目录 前言一、EfficientNetEfficientNet-B0 baselineMBConv 参数优化EfficientNet B0-B7 参数 二、EfficientDetBiFPN复合缩放方法 总结 前言 EfficientDet是google在2019年11月发表的一个目标检测算法系列&#xff0c;其提出的背景是&#xff1a;之前很多研究致力于开发更…

k8s的存储卷

存储卷------数据卷 把容器内的目录&#xff0c;和宿主机的目录进行挂载。 容器在系统上的生命周期是短暂的&#xff0c;delete&#xff0c;k8s用控制&#xff08;deployment&#xff09;创建的pod&#xff0c;delete相当于重启&#xff0c;容器的状态也会回复到初始状态。 …

C# .Net学习笔记—— 异步和多线程(await/async)

一、介绍 1、控制台测试await/async 2、C# 5.0 .Net framework4.5 CLR4.0 以后才有&#xff0c;本身是一种语法糖 二、基本测试 1、不加await测试。 private async static Task TestAsync() {Log.Info($"当前主线程id{Thread.CurrentThread.ManagedThreadId}"…

STM32深入系列02——BootLoader分析与实现

文章目录 1. STM32程序升级方法1.1 ST-Link / J-link下载1.2 ISP&#xff08;In System Programing&#xff09;1.3 IAP&#xff08;In Applicating Programing&#xff09;1.3.1 正常程序运行流程1.3.2 有IAP时程序运行流程 2. STM32 Bootloader实现2.1 方式一&#xff1a;Boo…

掌握视频节奏,玩转剪辑艺术!,轻松调整视频播放速度与秒数的技巧大揭秘

你是否经常觉得视频播放得太快或太慢&#xff0c;无法满足你的观看需求&#xff1f;或者想要控制视频的长度&#xff0c;却不知道该如何下手&#xff1f;今天&#xff0c;我们将为你揭秘几种简单又实用的方法&#xff0c;让你轻松调整视频的播放速度和秒数&#xff01; 首先&a…

ROS2学习笔记一:安装及测试

目录 前言 1 ROS2安装与卸载 1.1 安装虚拟机 1.2 ROS2 humble安装 2 ROS2测试 2.1 topic测试 2.2 小海龟测试 2.3 RQT可视化 2.4 占用空间 前言 ROS2的前身是ROS&#xff0c;ROS即机器人操作系统&#xff08;Robot Operating System&#xff09;,ROS为了“提高机器人…

JS 函数

函数就是封装了一段可以被重复执行调用的代码块。目的&#xff1a;让大量代码重复利用 1、声明函数 方式一&#xff1a;利用函数关键字自定义函数&#xff08;命名函数&#xff09; function 函数名&#xff08;&#xff09;{//函数体代码} function是声明函数的关键字&#…

企业的 Android 移动设备管理 (MDM) 解决方案

移动设备管理可帮助您在不影响最终用户体验的情况下&#xff0c;通过无线方式管理和保护组织的移动设备群&#xff0c;现代 MDM 解决方案还可以控制 App、内容和安全性&#xff0c;因此员工可以毫无顾虑地在托管设备上工作。移动设备管理软件可有效管理个人设备上的公司空间。M…

基于模块自定义扩展字段的后端逻辑实现(二)

目录 一&#xff1a;创建表 二&#xff1a;代码逻辑 上一节我们详细讲解了自定义扩展字段的逻辑实现和表的设计&#xff0c;这一节我们以一个具体例子演示下&#xff0c;如何实现一个订单模块的自定义扩展数据。 一&#xff1a;创建表 订单主表: CREATE TABLE t_order ( …

【赠书第16期】码上行动:用ChatGPT学会Python编程

文章目录 前言 1 ChatGPT简介 2 Python编程简介 3 使用ChatGPT学习Python编程 4 如何使用ChatGPT学习Python编程 5 推荐图书 6 粉丝福利 前言 随着人工智能技术的不断发展&#xff0c;聊天机器人已经成为我们日常生活和工作中不可或缺的一部分。其中&#xff0c;ChatGP…

重磅!GPT Store正式上线!

GPT Store来了。根据公告&#xff0c;用户可以在ChatGPT Plus、Team和Enterprise中访问、分享和销售使用OpenAI技术创建的AI模型。 而且&#xff0c;GPT Store确实有“推荐”机制&#xff1a;“特色GPTs”&#xff0c;商店会每周更新一批官方推荐的GPTs。另外OpenAI提供了“举报…

Unity中URP下实现能量罩(外发光)

文章目录 前言一、实现菲涅尔效果1、求 N ⃗ \vec{N} N 2、求 V ⃗ \vec{V} V 3、得出菲涅尔效果4、得出菲涅尔相反效果5、增加菲涅尔颜色 二、能量罩 交接处高亮 和 外发光效果结合1、修改混合模式&#xff0c;使能量罩透明2、限制 0 ≤ H i g h L i g h t C o l o r ≤ 1 …

韵达快递物流查询,批量复制查询好的快递物流信息

在网购成为日常的今天&#xff0c;每一条快递物流信息都牵动着我们的心。如何快速、准确地掌握这些信息&#xff0c;成为了一个迫切的需求。今天&#xff0c;就让我为大家介绍一款神奇的软件——快递批量查询高手&#xff0c;助你轻松查获和管理快递物流信息。 所需工具&#…

C语言理解

目录 计算机语言算法C项目创建C程序框架经典实例 计算机语言 程序是用特殊的编程语言&#xff08;这里是C语言&#xff09;写出来表达如何解决问题的不是用编程语言来和计算机交谈&#xff0c;而是描述要求它如何做事情的过程或方法程序是问题的载体&#xff0c;程序的执行就是…

羊奶加红枣,女性必备的加法!

羊奶加红枣&#xff0c;女性必备的加法&#xff01; 在当今社会&#xff0c;女性健康备受关注。而羊奶和红枣作为常见的食材&#xff0c;以其独特的营养价值备受追捧。不少人认为&#xff0c;羊奶里面加红枣对女生有很大的帮助。那么&#xff0c;到底羊奶加红枣对女性健康有哪…

GitHub pull request(傻瓜式入门版)

基础入门版 pull request一、fork项目二、clone代码到本地三、进入到克隆的项目目录下四、列出所有分支五、创建一个本地分支&#xff0c;并追踪远程项目分支六、查看当前分支七、与远程仓库建立连接八、与上游仓库建立连接八、同步最新代码九、修改代码并提交十、提交pr pull …

推荐几本学习Python的书籍

我推荐的学习Python的书籍 入门读物 《Python基础教程》&#xff08;Beginning Python From Novice to Professional&#xff09;《Python学习手册》&#xff08;Learning Python&#xff09;《Python编程》&#xff08;Programming Python&#xff09;《Python Cookbook》《…

苍穹外卖Day01——解决总结1中存在的问题

前序章节&#xff1a; 苍穹外卖Day01——总结1 解决总结1中存在的问题 1. 什么是JWT2. POJO、Entity、VO、DTO3. Nginx&#xff08;反向代理&#xff09;4. Data注解 1. 什么是JWT JWT&#xff08;JSON Web Token&#xff09;是一种用于在网络应用间传递信息的开放标准&#…

重学Java 2.Java入门程序

不破不立 ——24.1.11 1.开发三步骤 1.编写&#xff1a; a.创建一个文本文档 b.注意&#xff1a;将文件的后缀名显示出来 显示扩展名&#xff1a;点击查看->点击文件扩展名 2.编译&#xff1a; a.命令&#xff1a;javac java文件名.java b.注意&#xff1a;javac会将java文…

怎么使用好爬虫IP代理?爬虫代理IP有哪些使用技巧?

在互联网时代&#xff0c;爬虫技术被广泛应用于数据采集和处理。然而&#xff0c;在使用爬虫技术的过程中&#xff0c;经常会遇到IP被封禁的问题&#xff0c;这给数据采集工作带来了很大的困扰。因此&#xff0c;使用爬虫IP代理成为了解决这个问题的有效方法。本文将介绍如何使…