1024个为什么
码龄15年
求更新 关注
提问 私信
  • 博客:72,668
    72,668
    总访问量
  • 43
    原创
  • 43
    粉丝
  • 9
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
加入CSDN时间: 2012-03-09
博客简介:

JiuQianWan的博客

查看详细资料
个人成就
  • 获得91次点赞
  • 内容获得14次评论
  • 获得237次收藏
  • 代码片获得654次分享
  • 博客总排名97,237名
创作历程
  • 4篇
    2024年
  • 8篇
    2023年
  • 24篇
    2022年
  • 6篇
    2020年
  • 1篇
    2019年
  • 2篇
    2017年
成就勋章

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 1

TA参与的活动 0

创作活动更多

丰厚奖励!CSDN代码标注专家 招募计划正式启动!

幻觉代码、虚假技术方案、看似正确实则错误的博文正在侵蚀技术社区的信任基础。 CSDN作为中国知名开发者社区,有责任为真实、可靠的技术内容设立“护栏”。 我们邀请你——具备真实项目经验的技术专家,参与技术博文与代码的标注。

去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

<span class=“js_title_inner“>RPC 服务优雅停机、优雅重启,你的服务重启够优雅吗?</span>

但服务复杂了之后,除了上面两种线程之外,难免会有其他的工作线程,在服务重启的时候被忽略掉。还有其他非 RPC 框架的工作线程,如果不能直接被中断,也要保证不能先于 RPC 框架的工作线程结束,也要保证这些线程能够正常执行完毕。但是,等待现有就餐人员用餐完毕之前,厨房、收银员等人员不能先下班,可能还需要加菜、热菜什么的。,就是通知注册中心,我这个节点可以对外提供服务了,保证有请求过来时能有相应的工作线程干活。,就是通知注册中心,告知客户端,本节点要下线了,不再接受新请求了。
原创
博文更新于 2026.02.03 ·
25 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

<span class=“js_title_inner“>redis+定时 模拟滑动窗口实现熔断降级</span>

公司业务现用的通道为 A、B,为了降本,引入新的支付通道 Y,但 Y 通道的稳定性要低于 A、B,系统要能在 Y 通道故障时自动切回到 A、B,等 Y 恢复正常后,再切换到 Y。我们可以从系统现有的 A、B 通道的数据分析出用户原因未支付的比例(A、B 通道非常稳定,通道导致的失败率可以忽略不计),这样一来就可以得出支付成功的比例。还有一个场景是到输密码这一步,由于种种原因,用户返回了,终止了 支付流程。这个业务场景很重要,虽然发生的概率极低,但必须要解决,否则真有问题等用户反馈过来,其影响是不能接受的。
原创
博文更新于 2026.02.02 ·
289 阅读 ·
6 点赞 ·
0 评论 ·
5 收藏

redis+定时 模拟滑动窗口实现熔断降级

业务背景公司业务现用的通道为 A、B,为了降本,引入新的支付通道 Y,但 Y 通道的稳定性要低于 A、B,系统要能在 Y 通道故障时自动切回到 A、B,等 Y 恢复正常后,再切换到 Y。乍一看很简单,不就是熔断降级、故障恢复吗,有很多成熟的解决方案了。但有个特殊的业务场景,在支付通道的页面中(也就是输入密码的这一步)可能因为商户原因,无法继续支付。这一步已经脱离了我们自己业务的页面,所以也无法获知...
原创
博文更新于 2024.02.29 ·
676 阅读 ·
9 点赞 ·
0 评论 ·
9 收藏

1小时带你成为 Excel 大神 -- 程序员也应掌握的 Excel 骚操作

文章内容背景工作中经常遇到处理数据的场景,比如:1)给一批订单ID数据,看看哪些在库里没有。查有的好查,查没有的就要复杂一些了;2)给了一张表格,用订单ID列拼成SQL 的 IN 的查询条件,英文逗号拼接;3)给定某些列的数据,生成批量操作的SQL......这些事情如果靠写代码搞定的话,成本有点高,可复用性差。如果掌握了 Excel 的一些操作,这些操作几个公式分分钟就能搞定。下面就分 3 大块...
原创
博文更新于 2024.01.12 ·
1190 阅读 ·
17 点赞 ·
0 评论 ·
27 收藏

线上陈年老代码,Spring Event 一个事件每次都执行 2 次,为啥?

1、现象@Componentpublic class RecomputeBaojieAmountListener implements ApplicationListener<RecomputeBaojieAmountEvent> { @EventListener @Override public void onApplicationEvent(Recompu...
原创
博文更新于 2024.01.10 ·
1459 阅读 ·
15 点赞 ·
0 评论 ·
22 收藏

史上最详讲解,MySQL 的 json 数据类型的存储结构(源码+图)

1、前情交代本篇文章以 MySQL 5.7 版本为例。官方文档:https://dev.mysql.com/doc/refman/5.7/en/json.html5.7.8 及以后的版本才支持,遵循 RFC7159 标准(https://datatracker.ietf.org/doc/html/rfc7159)。json 内容只能是 json object 或者 json array。支持的...
原创
博文更新于 2023.12.17 ·
1961 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

工作多年,第一次上手排查线上CPU飚高问题

1、背景收到 zabbix 持续报警2、排查过程2.1 先登录上报警机器,查看是哪个服务进程占用 CPU使用 top 命令查看占用 CPU 最高的进程IDTasks: 188 total, 1 running, 187 sleeping, 0 stopped, 0 zombieCpu(s): 62.3%us, 5.7%sy, 0.0%ni, 31.7%id, 0.0%wa, ...
原创
博文更新于 2023.12.03 ·
265 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

NoClassDefFoundError/ClassNotFoundException 到底从哪引用到了这个类?排查思路

1、背景公司内网登录改造升级,使用方需要配合升级 jar 包。本以为很简单的事情,升级版本上线就 OK 了。没想到升级头一个服务,部署到测试环境就有问题。2、表象访问所有页面报 404。3、排查思路3.1 排除法,确定是不是升级 jar 包的问题版本回退后,一切正常,所以可以肯定是新版本 jar 包的问题。3.2服务启动是否正常升到新版本继续排查,看了服务进程在,启动日志也正常,查看 tomca...
原创
博文更新于 2023.07.04 ·
285 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

日志里的敏感信息还在打明文?3 种日志脱敏方案任你选

背景我们打的日志中经常包含姓名、手机号、银行卡号等敏感信息,如果不做任何处理,就会以明文的形式展示在日志中,存在安全风险。像下面这样:我们需要一种能自动帮我们脱敏的工具,效果如下:方案1 - 基于 logback我们得先搞清楚消息内容是在哪里处理的,也就是配置文件中这个占位符的内容:对应到源码是这里 ch.qos.logback.classic.PatternLayout :这里可以看出来都是通...
原创
博文更新于 2023.05.16 ·
17514 阅读 ·
3 点赞 ·
4 评论 ·
77 收藏

接口优化从哪些方面入手?

1、背景新接手的一个服务,对整个服务熟悉后,发现调用量 TOP1 的一个接口,完全超乎我对这个接口使用场景的预期,预期几万的接口,实际调用量近 400万,和调用方交涉后,暂时无法推动调用方优化,所以只能从接口内部优化。2、存在的问题2.1 不合理的重复调用同一调用链内,连续调用3次貌似还有定时任务10分钟一次2.2 日志文件过大,浪费磁盘空间且不利于排查问题24G,一个下游且相对边缘的服务,单节点...
原创
博文更新于 2023.05.12 ·
321 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

RPC 服务优雅停机、优雅重启,你的服务重启够优雅吗?

背景由于最近上线比较频繁,就遇到了一个小概率的数据不一致的问题。具体过程如下:很明显,是服务没有做到优雅停机,导致的两个服务的数据不一致。优雅停机、优雅重启,本质到底是什么?优雅重启涵盖了优雅停机、优雅启动。优雅停机:就是 JVM 进程杀掉之前,要做好各项收尾工作;常说的优雅停机一般是指 RPC 框架的工作线程 和 Spring 容器的销毁(容器中可能包含各种连接池对象的管理)。但服务复杂了之后,...
原创
博文更新于 2023.05.12 ·
1171 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

日志对性能的影响以及我的几个日志习惯

本文内容:1、背景2、影响性能的日志因素3、好的日志习惯|| 背景写这篇文章有 2 个原因,一是前段时间架构组同事的一次性能优化分享,单单日志(log4j2)这一项优化性能就提升了 19 倍,QPS 从1660 升到 32000,被震撼到了。二是最近接手的一个项目中,日志加了彩色打印,按日志的级别设置了不同的高亮颜色,看得我眼花缭乱,用 less 等一些命令查看时还会展.........
原创
博文更新于 2023.05.08 ·
4575 阅读 ·
4 点赞 ·
0 评论 ·
8 收藏

一次性解决打日志时的4个重复低效场景(日志脱敏、日期格式化、json序列化)...

本篇文章是对之前的两篇文章的一个总结、补充。《日志里打出来的都是时间戳?教你一行代码搞定它》《日志里的敏感信息还在打明文?3 种日志脱敏方案任你选》之前的解决方案是基于 fastjson + logback,本次补充了 fastjson + log4j。至于其他的 json 序列化框架、日志框架,大家可以继续深究,重点是解决问题的思路。背景我们在打日志的过程有 4 个重复低效的场景1、对象都是 j...
原创
博文更新于 2023.04.08 ·
1489 阅读 ·
1 点赞 ·
4 评论 ·
5 收藏

超级实用的 IDEA debug 技巧

本文截图中的图标仅供参考,不同版本的IDEA图标存在差异。进入指定方法(非常实用)shift + F7当一行代码有多个方法时,常规 F7 会按顺序一层一层的进入方法,效率低。shift + F7 能够快速选择要进入的方法。条件断点在断点处右键,设定条件,只有在满足设定的条件时,才会暂停。通过下拉箭头还能切换历史条件。光标断点Alt + F9debug 逻辑很长的方法,或者 debug 过程中提前查...
原创
博文更新于 2023.04.08 ·
1648 阅读 ·
4 点赞 ·
0 评论 ·
12 收藏

redis 大 key 删除踩坑记

业务场景接受某个定时任务处理流水的一个接口,使用 redis 缓存流水ID,用做幂等控制,用的数据类型是 hash,hash 内的 key=流水ID(长这个样子625736952578072728),value=UUID(长这个样子9def28a8-cd48-4fb6-9c93-0ac66b8450f5),数据量约 1600W,每月增量60W,约占 3G 内存空间。任务每月 5 号执行一次,耗时 ...
原创
博文更新于 2023.04.08 ·
620 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

述职晋升怎么准备?

核心目的是向评委展示你有给公司解决问题的能力,还有解决更高阶问题的能力素质,能给公司带来价值。什么时候开始准备?一直准备,很多人会问不应该是收到参加述职的通知再准备吗?真要等到通知再准备,不是不行,而是会少很多胜算。在你决定要参加下次述职时,就可以着手准备了。从以下三方面入手:1)主动争取一些有挑战、能做出成绩、可以体现你的价值的工作。避免机会来的时候,发现自己就是个打杂的,没什么可以拿的出手的。...
原创
博文更新于 2023.04.08 ·
1125 阅读 ·
1 点赞 ·
2 评论 ·
1 收藏

H5 通用收银台实战总结

收银台的定位为业务提供安全、多样化的收/退款能力,对业务屏蔽支付大小类和收款账户的复杂路由,对支付网关屏蔽复杂的业务场景。解释一下收银台为什么要提供退款能力?我们都知道超市里的收银台只负责收钱,退钱需要去服务台。但是线上的系统设计不能照搬线下的模式,交易类场景不能凭空产生一笔退款,一定要在某笔收款的基础上才能产生退款,因此,退款能力放在收银台不管是校验正向的收款数据,还是生成退款数据都是很方便合理...
原创
博文更新于 2023.04.08 ·
2507 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

日志里打出来的都是时间戳?教你一行代码搞定它

背景基于 fastjson1.x我们在打日志的时候,习惯把对象用 fastjson 转换成字符串后再交给日志打印。像下面这样:但等我们需要通过日志里的日期排查问题时就傻眼了,看到的日志是这个样子的:看到都是时间戳,还得拷出来找个时间戳转换工具才能知道真实的时间。看到这里是不是突然意识到这确实是个痛点啊,只是平时也没多想凑合看了。那么怎么才能把 Date 类型的数据,自动序列化成人类一眼就能看懂的...
原创
博文更新于 2023.04.08 ·
2158 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

服务迁移 - RPC 服务迁移

前两篇文章总结了数据库服务迁移、Redis 服务迁移,今天继续看一下 RPC 服务的迁移。如果单纯从节点迁移考虑,就相当于扩容、缩容。但实际操作过程中会有很多坑,还是先看一下示例图。(一)假设我们要迁移 userService 服务,从 10.0.0.1、10.0.0.2 的机器迁到 10.0.0.3、10.0.0.4 的机器上。userService 调用了数据库 和 orderService。...
原创
博文更新于 2023.04.08 ·
542 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

服务迁移 - Redis 服务迁移

前面我们说过了数据库服务的迁移,今天继续聊一下 Redis 服务的迁移。由于纯 [主 - 从] 结构主节点挂掉后不能自动切换的缺陷,生产环境一般很少使用此结构,我们就直接从哨兵结构说起。哨兵结构的迁移场景一:只迁移 redis 实例节点操作步骤(一)在新的机器上先搭建一套端口相同的主从节点,M2,R2,把 M2 作为从节点,挂在老的 R1 上,通过 Redis 自有的主从同步功能,同步数据。(二)...
原创
博文更新于 2023.04.08 ·
1630 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏
加载更多