SpringBoot
文章平均质量分 92
在下阿文
我叫阿文,文森特的文
展开
-
登录验证码高扩展性设计方案
在进行登录时,无论是账号密码登录,还是第三方登录,总是需要输入验证码。使用验证码可以进行人机判断,提高安全性,过滤恶性攻击。验证码一般由一串随机字符组成,当然也存在多种生成方式。验证码的展现方式有很多种,例如图片,语音,手机验证码。验证码的存储方式有很多种,例如数据库、缓存、JVM本地内存。验证码的存储又涉及到另一个问题,验证码唯一id如何生成,在分布式项目中,一般可以通过数据库自增序列、缓存自增序列、UUID、雪花算法等方式生成唯一id。原创 2024-07-01 21:58:48 · 434 阅读 · 0 评论 -
高可用电商支付架构设计方案
传统意义上的支付过程是A向B下单商品C,通过渠道D支付成功后,B将商品交给A。在电商背景下依旧大致沿用这一套流程,只是会进行责任细化,例如上述中的B,会根据业务功能拆分成多个微服务。每个微服务具有单一的功能,不同微服务之间相互独立运行,呈现一种高内聚、低耦合的状态。电商支付大致可以划分成如下几个部分。前端:用户通过电脑或手机下订单。订单服务:处理订单并进行库存锁定。支付服务:处理支付请求,和第三方支付平台进行交互。通知服务:支付完成后通知用户和相关系统。原创 2024-06-23 20:56:21 · 941 阅读 · 0 评论 -
分布式事务AP控制方案(下)
本文在上一篇文章的基础上,对四个任务进行了实现。四个任务在之前时都需要进行数据库状态的校验,确保任务执行的幂等性数据库MySQL,插入课程发布表,删除课程预发布表缓存Redis,插入kv值,建立缓存分布式文件系统MinIO,将课程页面静态化处理,并上传到文件系统分布式搜索系统ES,建立课程发布的索引,并插入文档,建立约束Mapping,实现关键字全文检索、目录和难度匹配。原创 2024-06-10 23:12:33 · 883 阅读 · 0 评论 -
分布式事务AP控制方案(上)
本文在实际开发业务场景的基础上,给出了一种遵循AP思想的分布式事务控制方案,通过本地消息表+任务调度的方式实现。项目亮点有:本地消息表通过任务123代替具体的任务,结合流程控制抽象类,只给出流程控制的代码,具体的业务实现由具体的实现类完成,从而实现解耦合,提高代码复用。任务流程控制中开启多实例和多线程,并行高效的执行任务。使用任务调度XXL-JOB进行任务执行,采用分片广播的方式,保证了任务执行的幂等性。原创 2024-06-10 22:42:16 · 1015 阅读 · 0 评论