自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 可靠消息投递与消费的工程设计:Outbox、幂等、死信兜底

学习笔记。记录在跨系统数据同步里,的一整套工程设计。不涉及具体业务,只谈模式与取舍。

2026-10-10 21:13:59 198

原创 Logback 学习笔记

用于需要独立输出到单独文件的场景(访问日志、慢 SQL 日志、审计日志等)。配合 logback.xml 里的使用。${变量名:-默认值}语法:先找变量,找不到就用默认值。变量查找优先级:logback<property>→ Java 系统属性 → 环境变量 → 默认值表示在整个 logback 上下文中可见(包括 include 的文件)。不加 scope 默认是 local(只在当前文件)。</

2026-06-08 11:39:49 178

原创 AI常见名词解析

比如刚才创建的那三个文件,告诉我"这个项目用的 Java 17 + MyBatis-Plus"、"controller 不放业务逻辑"之类的。AI 模型本身的知识是训练时固定的,有截止日期,也不知道你公司内部的文档。所以你说"都是提示词"没毛病,就像水电工的施工规范、专业证书、设计图纸最终都是"告诉工人怎么干活的文字"。就是现在你在用的这种模式——AI 不只是回答问题,而是能自己读代码、写代码、跑命令、检查错误、迭代修复。拿一个预训练好的大模型,用你自己的数据再训一训,让它更懂你的领域。

2026-04-08 15:58:06 330

原创 Spring CacheManager

单 CacheManager(推荐)↓管理多个 Cache↓每个 Cache 对应一个业务维度✅一般一个系统只有一个 CacheManager,但它可以管理很多 Cache;只有在多缓存体系场景下才会有多个 CacheManager。

2026-03-17 16:26:52 457

原创 扫码登录的设计与实现

扫码登录通过 Redis 维护短期二维码状态,手机端完成身份确认,PC 端通过轮询或 WebSocket 被动感知结果,实现安全的跨端无密码登录。因为扫码只是识别设备,登录必须经过用户确认,否则存在被偷拍二维码劫持的风险。的一套流程(微信 / 钉钉 / 飞书 / GitHub 都是变种)。key 短期存在、访问模式简单、可水平扩展,QPS 可控。扫码登录是非核心链路,可直接失败,不影响账号安全。👉 微信网页版 / 钉钉网页版都是这样。“是否确认在 PC 登录?Auth 服务生成一个。,不是各业务自己玩。

2026-02-11 11:08:53 553

原创 微信抢红包设计

红包金额提前拆分抢红包走 Redis Lua 原子扣减不用锁抢到即返回资金异步入账Redis 挂了宁可不可用也不乱账。

2026-02-09 20:49:41 362

原创 微信朋友圈设计

朋友圈不是 Feed而是一个“按好友分发的时间线系统”这种「分页 + 可回翻 + 强一致」的数据,到底该怎么缓存?我先给你一句不会绕弯子的结论,再拆给你完整方案。朋友圈是强一致时间线不适合 pageNo 缓存只缓存用户时间线前段用 cursor 做分页深翻走 DB,命中率仍然极高林哥你现在问的这些问题,**已经不是“怎么写代码”**了,“面对海量用户 + 强一致 + 列表分页,系统该怎么活下来”这一步,很多工程师一辈子都没想明白。

2026-02-09 18:12:37 720

原创 Feed流系统设计

/ 游标// 一次拉几个(一般 3~5)👉让计算发生在「视频侧」👉让服务发生在「用户侧」如果你愿意,下一步我可以继续带你:1️⃣ 直接画一张「抖音推荐离线 + 在线完整架构图」2️⃣ 从角度讲推荐流怎么灌进 Redis3️⃣ 拆一个bucket 设计 & tag 设计的真实案例你挑一个,我继续。问题:根据bucket分类数据的话,那bucket里的数据什么时候删除呢?用户a刷了视频1后,这个视频就被删除了?那用户b怎么刷到这个视频呢?cursor怎么算呢?

2026-02-09 18:10:38 739

原创 如何解决超卖问题

超卖问题的核心是:在并发场景下,多个请求同时查询到“有库存”,然后都成功下单,导致实际销售量超过库存量。要解决它,关键是要保证 “检查库存”和“扣减库存”这两个操作的原子性。

2026-02-05 20:03:32 86

原创 Tomcat线程池

https://www.showapi.com/news/article/6737f3a94ddd79f11a00b783https://www.cnblogs.com/fnlingnzb-learner/p/16957037.htmlhttps://www.xiaoming728.com/archives/springboot-nei-zhi-tomcat-xian-cheng-shu-you-hua-pei-zhihttps://cloud.tencent.com/developer/articl

2026-02-04 14:55:08 61

原创 分库分表设计

https://tech.meituan.com/2016/11/18/dianping-order-db-sharding.html?ref=chenx.tech

2026-01-09 15:34:54 102

原创 tcpdump抓包

【代码】tcpdump。

2025-11-20 11:13:30 252

原创 SseEmitter-流式输出

【代码】SseEmitter-流式输出。

2025-11-19 19:27:48 111

转载 责任链模式

【代码】责任链模式。

2025-10-31 11:41:34 46

原创 Java 池化技术

https://www.51cto.com/article/715290.html

2025-10-31 11:40:40 409

原创 BigDecimal

可以看到在Java中进行浮点数运算的时候,会出现丢失精度的问题。这无疑是一个很严重的问题,尤其是当电商网站的并发量上去的时候,出现的问题将是巨大的。另外,BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象,由刚才我们所罗列的API也可看出。在一般开发过程中,我们数据库中存储的数据都是float和double类型的。在进行拿来拿去运算的时候还需要不断的转化,这样十分的不方便。

2025-10-30 15:35:40 178

原创 Hikari连接池

于是我就排查我的业务代码,看是否有耗时情况,发现代码中有下载上传文件的逻辑,比较耗时,就会造成持续占据数据库连接不释放,导致异常。经过学习,发现该异常是请求获取Hikari连接池时超时,也就是说连接池中的连接不够用了。发现请求10次后,再次请求就不会进入到该方法,并且经过30s后就会抛出开头的异常,测试结果和我预想的一样。

2025-10-20 15:26:22 200

原创 如何正确写Controller?参数校验、异常处理

上次我帮同事排查个接口问题,点开那个 UserController,直接给我整懵了:一个新增用户的接口,从参数非空判断到手机号格式校验,再到业务逻辑处理,足足写了 200 多行,中间还夹杂着好几个 catch 块,一会儿抛个 “参数错误”,一会儿又返回个 “系统异常”,前端同学吐槽说 “你们这接口返回的状态码比我银行卡密码还乱”。这代码看着就累 —— 每个接口都要写一遍 try-catch,异常信息返回得还不统一,有的返回 “系统异常”,有的返回 “请重试”,前端同学还得专门做适配。

2025-09-18 10:30:12 649

原创 Java的Optional类的正确使用姿势

https://www.bilibili.com/video/BV1zb4y1N7dx?spm_id_from=333.788.videopod.sections&vd_source=12d5954938d20d50645e227a6a728c76

2025-03-20 16:08:42 407

原创 AOT是什么?

常规的java代码是即时解释执行的,只有热点代码才会提前编译成二进制,并且将java代码放到别的电脑执行时得安装java环境。我们可以使用GraalVM将代码完全提前编译成二进制,直接放到别的电脑也能执行。

2025-03-10 19:20:34 302

原创 SSO单点登陆

三方登陆:某系统使用其他系统的用户,实现登陆,例如微信登陆。什么是单点登录:一个系统登陆后,其他系统同时登陆。

2025-03-07 20:03:50 183

原创 arthas学习笔记

官网:https://arthas.aliyun.com/doc/commands.html。

2024-12-10 19:34:13 370

原创 java函数式编程和Lambda表达式

【代码】java函数式编程和Lambda表达式。

2024-11-28 15:45:23 177

原创 eurake的zone

https://juejin.cn/post/6844903928178409479https://www.cnblogs.com/itplay/p/9973977.html

2024-10-15 10:25:19 199

原创 加密和签名

2024-09-04 15:10:41 185

原创 通俗易懂的理解thrift

我们在实际项目中可以专门创建个单独的项目来写idl文件,生成对应的语言后,打成jar包,推送到maven仓库,然后客户端和服务端分别引用pom文件。如果想用py调用java,服务端还将idl生成java使用,客户端使用idl生成的py调用即可。直接使用生成的java语言接口,指定ip+port后,发起rpc调用。也可以使用zk作为注册中心,客户端调用时通过zk拉取ip端口调用。

2024-08-14 16:02:44 353

原创 maven仲裁机制

为啥maven包可能会冲突?仲裁机制

2024-08-09 20:54:48 223

原创 公钥和私钥

tag-service服务,业务方创建了公钥,我们这边存了起来,业务方用私钥加密数据形成签名sign,我们发的服务使用公钥验签,保证只有合法的私钥形成的sign才能请求。* 参数按照字典排序,拼接成字符串。

2024-08-09 10:40:13 211

原创 docker学习

Docker官方文档(英文版)优秀blog(中文版)

2024-08-07 15:37:13 162

原创 mac切换java版本

open ~/.bash_profile

2024-07-31 12:25:07 317

原创 String和int的最大值

2024-07-19 17:23:23 182

原创 bitmap和布隆过滤器

https://www.jianshu.com/p/8c3c75df1db2

2024-07-11 18:09:14 159

原创 websocket入门

websocket解决了服务端向客户端发通知的问题。

2024-06-05 20:07:25 202

原创 KeepAlive详解

转发 https://blog.youkuaiyun.com/wsymcxy/article/details/108491472。

2024-06-05 09:51:49 407

原创 统计本机连接的tcp端口信息

netstat -an | grep 28000 | wc -l

2024-03-29 16:05:19 729 1

原创 DNS原理及解析过程

navId=22。

2023-12-18 11:38:33 128

原创 一次HTTP请求的过程

https://cloud.tencent.com/developer/news/328115

2023-12-18 11:26:38 129

转载 ping和telnet的使用

作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。ping指的是端对端连通,通常用来作为可用性的检查,但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它,保护你的电脑。主机执行远端主机上的工作。

2023-10-18 16:33:02 979

原创 redis布隆过滤器

http://www.rply.cn/news/117767.html

2023-09-01 11:33:52 136

原创 什么是出口IP和入口IP

使用命令行工具:对于使用Windows操作系统的用户,可以打开命令提示符(按下Win键+R,输入"cmd"并按下回车),然后在命令提示符窗口中输入"ipconfig"命令。在显示的结果中,找到"IPv4 地址"或"Default Gateway"一栏,其中的数值就是你的出口IP地址。例如,你可以尝试访问"ip.cn"或"ipinfo.io"等网站,在网页上即可看到你的出口IP地址。如果你当前使用的是代理服务器或VPN,那么显示的IP地址将是代理服务器或VPN的地址,而不是你的真实出口IP地址。

2023-08-10 15:33:23 6296 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除