记录阅读《微服务设计》收获的点
什么是微服务?
一些协同工作的小而自治的服务
打破外键关系
对于有外键关系的表如何做服务拆分?
通过api调用访问
- 优点:数据表拆分,进而服务拆分
- 缺点:增加了数据库的调用,会影响性能。需要测试是否在可接受范围内,权衡拆分服务带来的好处
共享表拆分
共享表拆分后,如何保证插入数据的一致性?
设计之初为了减少数据库的调用,必然会建立基于外键的共享表。拆分之后,如何保证同时插入多张表数据的一致性?(某张表插入失败)
- 通过
事务
处理 - 推荐对及时性较弱的操作,异常捕获后放入队列或者日志文件中进行延迟处理,保证
最终一致性
- 终止整个操作,再发起
补偿事务
来抵消之前的操作(自动化处理) 分布式事务
。通过专门的事务管理器工具来协调底层事务(不推荐,易出错,难扩展)阅读完感觉云里雾里,可能是自己的水平还没到达那个深度。收获大概是:了解了后端的架构,后期拓展可能会遇到的问题,以及解决这样问题的思路。