关于微服务拆分的问题
来源:3-5 微服务拆分

慕九州9238872
2019-11-14
情形:
服务a —> 服务调用者
服务b —> 服务提供者
产品:需要一个有列表,列表里面有a的数据,然后要通过a的关联获得b的统计数据
现在a要在数据库里面查询一个列表,然后将b的数据插入列表
我有两种想法:
1、查询a得到列表里面a需要的数据,然后遍历分别调用b的接口将b的数据加入
2、查询a得到列表里面a需要的数据,获得一个关联b的id的集合,调用接口一次性获得b数据,然后在a组装数据
3、每次在更新b的时候同步更新a的冗余表,只需要调用a即获得所以数据。b会经常更新,感觉也不太好
4、还有就是多数据源,这样不符合服务相互独立的感觉
我只想到这些,感觉都不是很好,老师有没有建议呢
写回答
1回答
-
大目
2019-11-14
您好,很棒的问题。这是个业界难题…没有特别好的解决方案。
一般来说,1需要尽量避免,性能太差了。2是个可行方案,但是代码写起来还是会有点蛋疼,因为要提供者配合开发批量查询接口,有沟通成本。而消费者组装最终结果也很累。3在业界用得比2还要多一些,但是数据同步很累,不管是消费者用定时任务,还是基于mq,让提供者发生变化就推消息,都增加了开发成本…4在我的职业生涯,只有一个专门做数据分析的时候,才这么玩…
然而,貌似也没有方案5了…所以只能说合理冗余,合理批量调用,尽量减少微服务直接的相互依赖…20
相似问题
微服务拆分与多表关联查询
回答 1
分布式微服务如何关联查询
回答 1