- 博客(109)
- 收藏
- 关注
原创 服务器配置
export maxParameterCount=“1000”export acceptCount=“1000”export maxSpareThreads=“750”export maxThreads=“1000”export minSpareThreads=“50”export URIEncoding=“UTF-8”export JAVA_OPTS=" -Xms5120m -Xmx5120m -XX:MaxMetaspaceSize=512m -XX:MetaspaceSize=512m
2026-03-16 22:05:07
57
原创 日均千万单物流订单系统 生产环境无损全链路压测落地操作手册
你负责的是的物流订单系统,核心诉求是支撑日常10倍以上峰值(≥2万TPS),同时兼顾资源利用率。先明确一个核心误区:中小厂常用的「测试环境单接口压测」,在大厂高并发场景下。
2026-03-09 10:46:19
372
原创 日均千万单物流订单系统 全链路资损零容忍防控体系落地操作手册
你负责的是的物流订单系统,哪怕万分之一的资损率,单日直接资金损失就高达3.45万元,全年累计超1200万元;如果出现批量资损事件(如优惠规则bug、库存超卖),单次事故损失就可能突破百万,同时伴随用户投诉、合规处罚、品牌口碑崩塌,甚至法律风险。在大厂,,出现重大资损直接影响绩效、职级,甚至解除劳动合同;而中小厂研发普遍只关注「功能能不能跑通」,对资损防控几乎无概念,这也是大厂和中小厂研发的核心分水岭。
2026-03-09 10:45:48
366
原创 大厂高级研发 核心竞争力对标清单
我负责过的物流订单系统全链路架构设计与核心开发,对比中小厂研发,我除了基础的链路优化、架构设计、SQL优化能力外,核心竞争力集中在「」,而非单纯的功能实现与被动需求响应。
2026-02-25 20:38:10
557
原创 日均2000万级订单系统分布式架构设计文档与操作手册
本方案完全对标京东物流、菜鸟、顺丰等国内大厂主流物流订单系统架构,支持日均2300万订单、峰值1.5万TPS,可用性99.99%,零丢单,可水平扩展,初级Java工程师可按文档从零完成系统搭建、开发、部署全流程。采用分层微服务架构,从接入到存储共7层,配套跨横切面的公共组件与治理体系,整体架构如下:2.1 部署架构采用同城双活架构,2个可用区AZ1/AZ2均部署完整的服务集群、数据库主从、中间件集群,流量按用户ID哈希路由,单AZ故障时流量30s内自动切换,RPO=0,核心数据库采用一主多从、半同步复制
2026-02-25 16:39:30
632
原创 高并发场景下 为啥要严格使用状态机,一个订单不可能同时修改成不同的状态吗
场景描述: 用户点击“支付”按钮,由于网络卡顿,用户以为没点上,又点了一次。你认为的“不可能同时修改”,通常是指单线程、单机、理想网络环境下的情况。在“高并发”场景下,一个订单完全有可能(而且经常)被“同时”尝试修改成不同的状态。如果没有严格状态机(配合乐观锁等机制),会发生数据错乱、资损、业务逻辑失效等严重问题。场景描述: 在微服务架构中,订单状态变更是由消息队列(MQ)驱动的。– 可选:配合版本号。真正的解决方案是:数据库层面的乐观锁 + 状态机校验。在高并发场景下,“同时修改”是常态,而不是异常。
2026-02-25 15:46:39
37
原创 我们在开发高并发高吞吐的java api 接口的时候要和开发常规接口的区别,要考虑哪些问题 一一列举
维度常规接口高并发接口核心目标功能正确功能正确 + 性能 + 稳定响应时间秒级可接受毫秒级要求 (P99 < 200ms)可用性99% 可接受99.99% (全年停机<52 分钟)设计思维同步、顺序、强一致异步、并行、最终一致容错能力依赖下游正常下游挂了也能降级返回资源意识不太关注每个对象、每次 IO 都要计较。
2026-02-24 22:51:48
580
原创 数据库迁移
L --> M[更新 last_id];我的系统是一个大的电商系统,每日的单量有几千万单,我每半年就要把数据库中的数据进行迁移归档。你现在是一个大厂的架构师,需要你考虑电商大厂的实际场景,各种因素和隐患,出具一份数据迁移的详细方案,要详细到工作一年以内的程序员新人也能看懂。如果你删得太快,Master 的 Binlog 会疯狂产生,Slave 同步不过来,会导致主从延迟(用户刚买完东西,去列表页查不到)。灰度发布:先迁移 100 条,人工核对,再迁移 10000 条,观察一整天,最后全速开启。
2026-01-28 16:35:10
697
原创 异常梳理aaaa
还有一个问题,比如我确信某个对象,他不会为空,但是因为上游的问题,这里就是获取到的是空值导致了空指针,又以为没有使用业务异常处理 最终导致上报了可用率,我理解空指针是业务异常,他不是因为系统调用接口调用不到,或者网络异常等系统原因的异常。对于这种“不可恢复的参数错误”(重试一万次也是空),你需要 catch 住它,打个 WARN 日志记录一下(“收到一条脏数据,丢弃”),然后正常返回(消费成功),以避免死循环重试。我理解就是 ERROR 是系统界别的异常,warn是业务级别的异常。
2026-01-19 22:21:10
481
原创 商城系统分布式下单
比如feginC()发生错误,这时候需要回滚feginB,这时候可以采用在test()方法中catch异常然后发送消息,进行数据的补偿回滚,我们采用在fegin主动调用延时队列的方式,就不用catch了,并且还可以做到期自动关单。二、在try的时候,直接发送一条消息,而不是登发生异常以后再发送,这条消息是发到延迟队列的,这样做的好处是,不用再catch中做补偿了,延时队列中的消息到时间以后,判断数据状态,需要补偿的进行数据的回滚,不需要的直接忽略。fegin中的消息队列就是为了fegin事务回滚用的。
2023-11-08 23:23:03
663
转载 Java实现RSA加密
Java实现RSA加密1.原理2.实现过程3.公式4.举例5.最后简单谈谈RSA的安全性在RSA密码应用中,公钥KU是被公开的,即e和n的数值可以被第三方窃听者得到。破解RSA密码的问题就是从已知的e和n的数值(n等于pq),想法求出d的数值,这样就可以得到私钥来破解密文。从上文中的公式:d ≡e-1 (mod((p-1)(q-1)))或de≡1 (mod((p-1)(q-1))) 我们可以看出。密码破解的实质问题是:从Pq的数值,去求出(p-1)和(q-1)。换句话说,只要求出p和q的
2022-01-14 15:25:13
15850
3
转载 springboot 整合日志
https://www.jb51.net/article/118849.htm
2021-12-29 17:14:36
226
转载 logback 详解
https://www.cnblogs.com/warking/p/5710303.html
2021-12-14 10:38:40
191
转载 git diff git log
https://zhuanlan.zhihu.com/p/275690353
2021-11-24 15:46:42
244
转载 git rebase
在之前的文章当中我们介绍了git merge的用法,明白了通过git merge我们可以合并两个分支的改动。这样我们就可以很方便地进行协同开发了,每个人都在自己的分支下开发代码,开发完毕之后再一起合并到master分支。通过这种方式可以保证大家的代码不会陷入混乱,但是这样有一个隐含的缺陷。缺陷就是我们之前说过的,当我们合并两个没有上下游关系的分支时,git会自动替我们生成一个merge commit,记录此次的merge。记录merge操作没有什么问题,问题是如果我们遇到特殊情况需要反复merge的时候,
2021-11-24 14:44:45
403
转载 省市区三级地址
https://www.cnblogs.com/ang-664455/p/7846206.html
2021-11-16 10:02:01
454
转载 Base64+MD5
https://www.jianshu.com/p/b419163272c1
2021-11-10 11:30:18
208
转载 maven 的几个内置属性
内置属性主要有两个常用内置属性: ${basedir}项目的根目录(包含pom.xml文件的目录),${version}项目版本POM属性用户可以使用该属性引用POM文件中对应元素的值,常用的POM属性包括:${project.build.sourceDirectory}:项目的主源码目录,默认为 src/main/java${project.build.testSourceDirectory}:项目的测试源码目录,默认为 src/test/java${project.build.direc
2021-11-03 11:26:34
491
转载 maven 几个常用插件
maven-compiler-plugin编译Java源码,一般只需设置编译的jdk版本<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.0</version> <configuration>
2021-11-03 11:07:57
819
转载 Spring 拦截器和过滤器的区别
https://www.zhihu.com/question/30212464/answer/1786967139
2021-10-27 09:57:45
187
转载 OOM排查
https://www.cnblogs.com/c-xiaohai/p/12489336.html
2021-09-18 11:17:19
182
转载 线程池中shutdown()和shutdownNow()方法的区别
https://www.cnblogs.com/aspirant/p/10265863.html
2021-09-08 18:48:06
207
转载 spring cloud笔记一
前言: 十分喜欢尚硅谷老师的课程,此文章为记录周阳老师的2020最新版Springcloud的学习笔记。 技术版本cloudHoxton.SR1boot2.2.2.RELEASEcloud alibaba2.1.0.RELEASEjavajava8Maven3.5及以上Mysql5.7及以上1. 新建Maven父工程 cloud2...
2021-08-17 11:10:37
154
原创 Spring事务
环境搭建 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.44</version> </dependency> //导入spring-jdbc以后会自动导入spr
2021-08-06 13:38:21
129
转载 Cglib动态代理
<dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.2.5</version></dependency>public class UserDao{ public void save() { System.out.println("保存数据");
2021-08-05 14:28:02
124
转载 Java反射机制详解
对于一般的开发者,很少需要直接使用Java反射机制来完成功能开发,但是反射是很多框架譬如 Spring, Mybatis 实现的核心,反射虽小,能量却很大。本文主要介绍反射相关的概念以及API的使用,关于反射的应用将在下一篇文章中介绍反射的介绍反射(Reflection) 是 Java 在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。Class 类介绍:Java虚拟机为每个类型管理一个Class
2021-08-04 17:44:01
203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅