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

pokerface
  • 628

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

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

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

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