微服务一般是跨库连表还是调用相关微服务?

用户是一个微服务,文章是一个微服务;
现在假如我用户微服务需要文章信息,有两种做法
1.用户微服务垮库连文章表
2.用户微服务调用文章微服务

我想知道,一般采用哪种?

如果用户表需要和文章表做成事务,保证一致性,怎么搞?

阅读 3.6k
2 个回答
  1. 你用户服务都能知道文章的数据库表结构长啥样了,它俩怎么还能是两个服务呢?
  2. 分布式事务,一般强调最终一致,不要求强一致;非要强一致的也有,但牺牲一定的高并发能力,CAP 你总得丢一个。
  3. 不要没有条件硬要创造条件,微服务不是万能灵药,软件工程中也没有银弹
  1. 获取信息的问题,一般情况,既然都分服务,就相当于做了解藕和隔离,如果你再连其他服务的数据库,这样就藕断丝连了,所以,其他服务提供你想要的接口去处理即可;
  2. 一致性的问题,有一个思路,你可以参考下,既然做一致性,说明有表数据更改,那样就在各种服务做事物,根据相应的返回值进行提交或者回滚。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题