NET Core微服务之路:再谈分布式系统中一致性问题分析( 四 )
文章插图
不过 , 由于这种方法在每个状态执行的时候都需要记录下来 , 而且需要更新数据库中的状态信息 , 一旦在大规模高并发下 , 性能将会是一个严重的瓶颈 。
【NET Core微服务之路:再谈分布式系统中一致性问题分析】一种更好的解决办法是用Write-Ahead Logging(WAL) , 也叫预写日志 , 详细介绍可参考维基百科 , 一种提高性能的方法 , 作用是在做每个操作的时候 , 都先写入到日志 , 如果操作遇到问题而停止的时候 , 可以读取日志进行恢复 , 最后达到一致 , 由于他的日志是追加模式 , 磁盘写操作只有传统的回滚日志一半左右 , 大大提高了数据库在高并发下的性能 。
总结
- 如果钱不是问题 , 那么最最简单的方式是使用向上扩展 , 利用强悍的硬件性能来运行专业的关系数据库 , 能否保证强一致性 , 比如Orcele和DB2这样符合工业标准的数据库 。
- 如果钱是个问题 , 那么相关的数据分到数据库的同一个分片 , 能够保证使用关系型数据库实现强一致性 , 比如Mysql 。
- 如果是业务限制 , 无法将相关的数据分到同一个片 , 就需要实现最终一致性 , 通过记录事务的状态来判断 , 一旦处理不一致 , 可通过自动化(如定时)或者人工干预来继续执行 , 并修复不一致的情况 。
推荐阅读
- 亚马逊终止托管服务:Parler网站下线
- Git服务器配置错误导致日产汽车源码在网上泄露
- 虾米音乐,下个月正式停止服务
- 虾米音乐播放器将于2月5日停止服务,今开启用户资产处理通道
- 服务|虾米音乐:2月5日关停3月5日后将无法登录
- 天猫精灵App全新升级,推出“精灵家”服务
- 快递员拒绝送货上门并大喊大叫!经济学者马光远吐槽德邦快递服务烂:流氓至此,坚决抵制
- 亚马逊宣布停止为Parler提供托管服务
- 亚马逊员工权益组织呼吁AWS拒绝为Parler提供托管服务
- 普渡机器人获最佳商用服务机器人奖