微服务设计 (5-分解单块系统)
分解单块系统
关键是接缝
接缝 -> 限界上下文
分解单块系统的原因
改变的速度
团队结构
安全
技术
杂乱的依赖
数据库
打破外键关系
共享静态数据
共享数据
共享表
事务边界
再试一次
终止整个操作
分布式事务
分布式事务很容易出错,而且不利于扩展。这种通过重试和补偿达成最终一致性的方式,会使得定位问题更加困难,而且有可能需要其他的补偿措施来修复潜在数据的不一致。
如果你遇到的场景确实需要保持一致性,那么尽量避免把它们放在不同的地方,一定要尽量这样做。如果实在不行,那么要避免仅仅从纯技术(比如数据库事务)的角度考虑,而是显式地创建一个槪念来表示这个事务。你可以把这个槪念当作一个句柄或者钩子,在此之上,能够相对容易地进行类似补偿事务这样的操作,这也是在系统中监控这些复杂概念的一种方式。举个例子,你可以创建一个叫作“处理中的订单”的概念,围绕这个概念可以把所有与订单相关的端到端操作(及相应的异常)管理起来。
报表
周期同步
通过服务调用来获取数据
事件数据导出
转载请注明:转载自srzyhead的博客(https://srzyhead.github.io)
本文链接地址: 微服务设计 (5-分解单块系统)