07 2022 档案
摘要:1.前言 分布式id的来源主要是针对分布式的整体应用,在每秒可成品千万级别的数据。对于这样的大批量数据,必定需要分库分表,那么针对常用的自增主键(MySQL)或序列增长(Oracle),同一业务的分表,会存在相同的主键,对于数据处理来说,会显得异常麻烦。那就必须采用更有效的方式来解决这种问题,实现I
阅读全文
摘要:很多时候都能看到,当下了订单后10分钟或30分钟未支付,订单会自动取消,具体是如何实现的呢? 本文使用最常用的几种方式,只说明关键的部分,已30分钟为例。 1.借助redis的过期特性 逻辑: 下单时,订单状态是待支付。将订单编号作为key,下单的时间戳作为value,设置过期时间是30分钟。服务器
阅读全文
摘要:1.订单与支付 1.1问题背景 假如有一个快递下单系统,在寄快递时,客户下单并支付费用,支付后会生成验货码用于商家扫描入库,其支付和退款流程如下: 支付:创建业务订单 > 创建支付订单 > 唤起支付收银台 > 输入密码 > 进入支付回调处理 > 更改支付状态及业务状态 退款:创建退款订单 > 发起退
阅读全文
摘要:1.前言 在项目中,有些接口是无需安全验证即可访问。既然直接暴露出来,就意味着不安全,就会面临恶意访问,盗刷流量等问题。面对恶意访问,往往是通过程序对接口发送大量请求,轻者接口响应缓慢,重者造成服务器宕机,使得服务不能正常使用。 最常见的就是发送短信验证码,在用户注册时可发送短信验证码验证,在登录时
阅读全文