记录阅读《微服务设计》收获的点

什么是微服务?

一些协同工作的小而自治的服务

打破外键关系

对于有外键关系的表如何做服务拆分?
通过api调用访问

  • 优点:数据表拆分,进而服务拆分
  • 缺点:增加了数据库的调用,会影响性能。需要测试是否在可接受范围内,权衡拆分服务带来的好处

共享表拆分

共享表拆分后,如何保证插入数据的一致性?
设计之初为了减少数据库的调用,必然会建立基于外键的共享表。拆分之后,如何保证同时插入多张表数据的一致性?(某张表插入失败)

  • 通过事务处理
  • 推荐对及时性较弱的操作,异常捕获后放入队列或者日志文件中进行延迟处理,保证最终一致性
  • 终止整个操作,再发起补偿事务来抵消之前的操作(自动化处理)
  • 分布式事务。通过专门的事务管理器工具来协调底层事务(不推荐,易出错,难扩展)

    阅读完感觉云里雾里,可能是自己的水平还没到达那个深度。收获大概是:了解了后端的架构,后期拓展可能会遇到的问题,以及解决这样问题的思路。