架构设计--评论系统
架构设计最重要的就是理解整个产品体系在系统中的定位。搞清楚系统背后的背景,才能做出最佳的设计和抽象。不要做需求的翻译机,先理解业务背后的本质,事情的初衷。
架构设计最重要的就是理解整个产品体系在系统中的定位。搞清楚系统背后的背景,才能做出最佳的设计和抽象。不要做需求的翻译机,先理解业务背后的本质,事情的初衷。
本文通过日志处理的角度来探讨去中心化系统的设计思路和实现方案。
去中心化是分布式系统设计中的重要概念,它通过将控制权分散到多个节点来提高系统的可靠性和容错性。
叠甲,写这篇文章主要是分享在看 DDD 的项目实践中的一些学习感悟,因为本人懒得看理论,所以都只是猜测 DDD 要这么设计。具体还是要参考 DDD 官方网站: DDD 概念介绍
一般来说在我们的项目中,按照严格分层的结构划分的话,大致是 handler、service(DDD 中细分为 application 和
domain ),dao。
对于 dao 层,如果出现错误,我们的处理方式是直接上抛,选择性的打日志处理错误,比如可能有些接口涉及到在 dao层进行参数校验、手动管理事务等,需要日志记录,但错误仍然是直接上抛。
如何保证缓存和数据库一致性,这是一个老生常谈的话题了。
但很多人对这个问题,依旧有很多疑惑:
我们从最简单的场景开始讲起。
在 MVCC 机制下,Redo Log 和 Bin Log 主要在事务提交时发挥作用 ,它们的作用和触发时机如下:
当执行:
UPDATE users SET age = 26 WHERE id = 1; MySQL 的 事务执行顺序 (结合 MVCC + 日志)如下: