架构成长笔记
文章平均质量分 71
架构成长笔记
Calvad0s
全网粉丝10w+人工智能博主、阿里云专家博主、掘金签约作者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JDK14 Switch表达式yeild关键字的用法
简单来说,yield就相当于return,返回的是整个switch表达式的值。原创 2026-11-07 09:41:45 · 27 阅读 · 0 评论 -
支付订单成功异步MQ权益发放设计和开发
核心定义:用户支付成功后,系统根据订单内容给用户开通对应的服务权限打个比方:就像你买了视频会员,支付成功后账号立即获得观看权限用户直接购买某一项具体权益,例如:购买 10 次 AI 面试次数对应,订单中有明确的benefitId发放逻辑:查出权益信息 → 构建 1 条 BenefitItem → 发 MQ。原创 2026-11-01 15:43:17 · 151 阅读 · 0 评论 -
支付订单超时处理与状态补偿机制设计
假如10分钟到了,MQ监听器会消费死信队列里的订单消息,查询数据库中订单的状态,已支付和已取消就直接return,如果是未支付则查一下微信服务这笔订单的状态,如果微信服务返回的是已支付,则更新数据库这比订单为已支付的状态。RabbitMQ发送订单消息到交换机中,交换机又路由到延迟队列中,队列中的消息超时进入死信队列。等待消息超时过期会进入到下面的死信队列,然后MQ的监听器会监听到,从而关闭订单。幂等检查就是查询此订单现在的状态,如果和要更新的状态一致,则return。更新数据库订单状态为“已支付”原创 2026-11-01 14:01:31 · 379 阅读 · 0 评论 -
微信支付V3版回调通知解密逻辑讲解
微信支付会按照(15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h)的频次重复发送回调通知,商户需告知微信支付接收回调失败,HTTP应答状态码需返回5XX或4XX,同时需返回应答报文。商户需告知微信支付接收回调成功,HTTP应答状态码需返回200或204,无需返回应答报文。打个比方:你点外卖,商家做好后通知你,回调就是微信支付通知商户支付结果。若商户应答回调接收成功,微信支付将不再重复发送该回调通知。若商户应答回调接收失败,或超时(5s)未应答时。原创 2026-11-01 09:14:18 · 304 阅读 · 0 评论 -
有状态依赖的集成测试验证 + 断言 测试微信支付
(说明配置文件没读取成功),这个测试方法依然会显示“绿色通过”。但加上断言后,一旦配置没加载上,测试就会立刻变红报错,提醒你:“喂,商户号是空的,配置有问题!JUnit 5 默认不保证测试方法的执行顺序(通常按哈希值随机执行),案例测试步骤存在强依赖(必须先有订单才能查询和关闭)编写有状态依赖的集成测试,特别是针对第三方支付(微信支付)的完整生命周期测试(下单 -> 查询 -> 关闭)如果不符合,测试就会直接报错(Fail),并提示你哪里出了问题。比如我们上面的代码中,如果没有这行代码,即使。原创 2026-10-31 09:53:30 · 147 阅读 · 0 评论 -
订单模块设计和微信支付业务架构说明
核心定义:订单支付模块是电商系统的核心组件,负责处理用户购买商品后的支付全流程简单说,订单支付模块就像一个收银台+财务系统,既要处理收款,又要管理订单状态核心定义:对称加密是指加密和解密使用同一把密钥的加密方式简单说,就像一把钥匙既能锁门也能开门优缺点优点加密解密速度快,适合大数据量算法简单,计算资源消耗少缺点密钥分发困难,需要安全通道传输密钥多方通信时需要维护多把密钥,无法解决身份认证问题对称加密工作原理常见对称加密算法算法密钥长度特点适用场景AES128/192/256位。原创 2026-10-30 16:28:57 · 194 阅读 · 0 评论 -
扫码登录回调全链路架构图
原创 2026-10-30 08:30:11 · 207 阅读 · 0 评论 -
微信扫码登录-公众号带参数二维码整体架构设计
扫码登录是一种免密登录方式,用户通过微信扫描网页二维码即可完成登录,无需输入账号密码简单说,扫码登录就像刷脸进门,用手机扫一下就能登录,既安全又方便安全性高:基于微信认证,无需在第三方网站输入密码体验流畅:扫码即登录,3秒完成整个流程用户基础大:微信用户超12亿,覆盖面广自动注册:首次扫码自动创建账号,无需填写注册表单定义:微信公众平台提供的一种特殊二维码,可以携带自定义的场景参数类型:分为临时二维码()和永久二维码(场景值:每个二维码可以携带一个唯一的scene_str参数,用于标识不同的业务场景。原创 2026-10-29 10:27:45 · 321 阅读 · 0 评论 -
解决项目敏感信息裸奔 dotenv-java 环境隔离
一种轻量级的配置文件格式,通过 “键值对” 存储配置,将配置与代码分离,集中管理,且易于跨环境、跨语言使用格式简单:仅包含KEY=VALUE键值对,无复杂语法(如的转义、.yaml的缩进要求)示例# .env 文件内容DB_PASS=123456 # 这是数据库密码(支持注释)不侵入代码:作为独立文件存在,与代码彻底分离,配置变更无需修改代码。跨语言通用几乎所有主流语言(Java、Python、Node.js、Go 等)都有对应的.env加载库如 Java 的、Node.js 的dotenv。原创 2026-03-01 10:50:55 · 732 阅读 · 0 评论 -
一篇文章带你学会分布式存储技术 阿里云OSS
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台OSS(Object Storage Service)是一种对象存储服务,不同于传统的文件系统扁平存储:没有真正的目录结构,只有key-value元数据丰富:每个对象带有元数据(大小、类型、上传时间等)HTTP访问:通过HTTP/HTTPS协议访问无限容量:理论上可存储无限数量的文件概念说明类比Bucket存储空间,独立的容器云盘的根目录Object具体的文件云盘里的文件Key对象的唯一标识文件路径EndpointOSS访问地址。原创 2026-10-18 14:51:05 · 441 阅读 · 0 评论 -
手机短信验证码架构设计方案
短信一般3-5秒到达,如果超过30秒未收到,建议提示用户重发。:发送失败时给出清晰的错误提示,如"短信服务繁忙,请稍后再试":只使用数字0-9,不使用容易混淆的字母(如O和0,I和l):短信发送失败时,可以重试1-2次,但不要过多重试。:图形验证码必须在服务端生成和校验,不能在前端校验。:检查Redis中上次发送时间,硬性限制60秒。:发送前必须先通过图形验证码,防止机器人。:限制同一手机号每天5次,防止恶意攻击。:如果并发高,可以考虑异步生成验证码。:发送后按钮禁用60秒,防止误点击。原创 2026-10-18 08:47:01 · 37 阅读 · 0 评论 -
电商系统在双11大促活动下的架构体系
了解双11 的历程学习当前主流的电商系统架构体系了解大促对电商系统的一些挑战面对大促活动,站在架构师角度思考,可能有哪些问题,如何应对从组织架构到技术架构,当前各大电商系统基本趋于中台化。中台在2015由阿里提出,其实是一种企业架构而不是单纯的技术层面,目前几乎各大电商都进行着中台化的建设。中台没有什么神秘的,说到底,中台就是对“共享”理念系统化的归纳和总结。重复功能建设和维护带来的重复投资烟囱式建设造成系统壁垒,数据孤岛业务沉淀促进可持续发展大中台小前台快速响应市场的需要。原创 2026-10-13 10:35:32 · 285 阅读 · 0 评论 -
电商系统演进(业务与架构)
综合前面的业务模式,各业务类型中都具备基本的商品、交易、库存、支付等公共部分。提炼这部分基础内容进行沉淀,逐步形成中台基础能力层;而个性化的业务流程部分上浮,形成产品层。这样做的好处是:基础能力层聚焦于稳定收敛的业务模型和基础服务本身,不会随业务和前台产品的调整发生大的变化;平台产品层则专注于通过流程编排类的技术手段,将基础能力构建成业务的解决方案,解决共性和个性化的问题。即"大中台,小前端任何体系的成型不是一蹴而就,随着访问量、数据量的增长,业务需求在推动技术架构的发展变革。原创 2026-10-13 09:36:14 · 230 阅读 · 0 评论 -
【项目管理】互联网大厂Git多分支规范
Git分支管理是指在Git版本控制系统中,通过创建和管理多个分支来组织代码开发流程,支持并行开发、代码隔离和版本控制简单说,就像一棵树的主干和分支,main分支是主干,feature分支是枝叶,每个分支都可以独立生长,最后再合并到主干并行开发:多个功能可以同时开发而不相互干扰代码隔离:开发分支、测试分支、生产分支相互隔离版本管理:支持版本回退、热修复和发布管理团队协作:多人协作时减少代码冲突。原创 2026-09-25 10:25:22 · 289 阅读 · 0 评论
分享