C 建设个人网站,如何查找做网站的服务商,西安有什么好玩的景点,自己想做一个网站怎么做的目录 系统设计
防重控制
流量控制
并发控制
异常处理
备份机制
系统开发
前端队列操作
外系统交互
系统设计
防重控制
对于进入到系统中的数据#xff08;文件导入、手工录入、系统直连等#xff09;以及本系统发往外…目录 系统设计
防重控制
流量控制
并发控制
异常处理
备份机制
系统开发
前端队列操作
外系统交互
系统设计
防重控制
对于进入到系统中的数据文件导入、手工录入、系统直连等以及本系统发往外系统的数据都需要进行防重控制处理主要是采用数据库表的主键或者唯一索引机制来进行防重。
防重表的主键应该选取能够唯一标识该笔交易的字段例如对于文件导入的数据可以先计算文件内容的MD5然后将MD5的值作为防重主键。
防重表的数据也需要备份仅保留一段时期参数化设置的数据其余的可以备份到历史表。
对于实时联机交易引入幂等流水做好控制
流量控制
为了避免系统被前端流量压垮以及系统自身的流量把后端系统压垮因此需要在数据接收和数据发送时引入流量控制机制。
具体实现可以考虑令牌桶、漏桶、计数器等算法对于微服务架构的项目直接使用熔断器即可。
并发控制
并发控制是为了应对同一条记录被多人同时操作的情况常见于前端界面队列操作以及后端定时任务并发控制常用的方式也是数据库表利用表的主键来防止并发。
异常处理
目前主要是自动流程、外系统交互、定时任务等场景异常情况比较常见对应的处理机制基本如下
需要分析出可能的异常点每一种异常可以先尝试系统自动重试重试一定次数参数化设置仍然不成功的需要提醒短信或其他方式到相应的处理人员另外还需要展示在前端异常队列处理人员可以在该队列触发重试或者其他操作视具体业务而定。
备份机制
数据库的数据、日志文件、交易文件都需要考虑备份数据库一般是建立历史表采用分区的方式当前表保留一段时间后转到历史表日志文件和交易文件一般是保留一段时间参数化设置后删除。
系统开发
前端队列操作
1、前端按钮点击过后要禁用防止用户连续点击造成重复发送请求到后台
2、前端请求发送到后台后后端逻辑需要先判断该笔交易的状态是否已经发生改变如果已经改变的话直接返回提示前端没有改变的话先加并发控制锁加锁成功后然后再次判断该笔交易的状态是否已经发生改变没有改变则进行后续业务逻辑最后在finally中释放并发控制锁
外系统交互
需要跟对接系统确定好通讯的字符集编码如果通讯数据中包含金额栏位需要确定好传输过程中金额是否包含小数点需要处理好精度问题在发请求给外系统之前需要先关闭数据库连接通讯完成后再重新开启数据库连接
需要设置连接超时以及读超时参数对于串行连接的多个后端系统则需要遵循越后端的系统超时时间越小数据接入和数据转出都需要有防重控制发送请求给后端系统时需要先更新发报流水的状态为发送中对于长期处于发送中状态的流水需要进行异常预警技术人员视具体情况进行手工干预处理或者提供前端界面供业务人员处理发送请求给后端系统时需要考虑几种异常情况组包异常、连接超时、读超时、解包异常、交易重复、交易未明不一定有并针对每一种异常都有对应的处理机制每一种异常都需要预警