本文主要是介绍并发关键问题思考,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
异常处理 异常顾名思义在正常运行的程序因为各种原因导致的非正常处理。异常的关键要素包括错误信息、异常堆栈、错误代码、错误参数、发生时间等。另外,由于异常报错的地方可能较多,因此需要集中处理,对于不同的业务需要建立不同的异常日志。
监控流水
监控流水是为了解决程序的健康情况和程序报错后的处理参考。监控包括程序的操作业务流水和业务操作链条流水。前者用于监控程序的健康状况,后者用于解决逻辑性错误的监控流水。监控势必影响一定的程序性能,因此监控程序必须采用异步方式写。监控数据的存储需要以日期和业务主体作为分类保存,方便随时查找。
并发处理
事务,事务是保证处理流程一致操作的利器,例如对于资金的更改记录,包括总账更改和流水更改,如果流水更改发生错误,则总账也发生回滚,可以导致不必要的程序错误。事务发生于数据库层。事务能够保证操作的序列要么执行、要么不执行,也就是保持事务状态的一致性。
锁解决多线程访问统一资源时的竞争问题。锁分为数据锁和数据库锁,数据锁通过iis解决,数据库锁通过数据库层面解决。为了保证程序的协调一致,尽可能的通过程序锁解决,防止数据库锁不释放导致的程序瘫痪问题。程序锁里面必须要有锁释放机制。
并发中实际会存在三个核心问题:1)重复操作问题 ,即由于重复快速提交导致数据重复问题 2)由于操作同一资源,导致资源访问不一致问题 3)大量重复操作,导致的负载压力大问题 。第一个问题,需要采用缓存问题解决,将数据判断的数量级降为亚秒级别。第二个问题,需要采用并发和事务处理,保证修改数据的一致性问题。 第三个问题,需要采用负载均衡和队列,以便增大数据吞吐和请求削峰处理。
这篇关于并发关键问题思考的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!