采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好,在单体应用拆分成微服务后,原来的两表分在两个库中,那么如何进行join,排序等操作
在课程中反复提到,服务间调用的问题,服务间调用就是为了解决:
一个服务需要获取另一个服务的数据。在单体服务中,你用表的关联获取数据,但是拆成不同的服务以后,就只能在java中从另一个服务获取数据,然后关联。这个是读的操作,没有事务的问题。
一个服务在完成一个业务请求时,需要调用另一个服务完成某个操作。这是写操作,就存在事务问题。
只看读操作的话,服务间调用好像无法解决两张表join之后,再进行排序的操作,貌似只能实现left join的效果?
如果你之前的排序是在两个表的多个字段上排序,那确实没有较好的办法。在微服务中只能在一个服务内先按排序获取数据,再根据相应的id去另一个服务获取。 如果你的两个服务有那么紧密的关联,那就得重新考虑一下服务拆分是否合理的问题。 如果在服务拆分合理,但是在某种特殊情况下,确实需要在两个服务的两个表上的字段排序,那就只能把数据少的那个表的数据都取出来,自己在java里面排序。但是前提是记录不是很多。
查询视图的方案实际中是否可行 就是说两张分库的大表需要join的,通过发布事件,聚合成读视图(表),但是这样的话如果有变动需要维护读视图的数据?
登录后可查看更多问答,登录/注册
掌握分布式事务实现技术,是架构师必备技能。
1.2k 13
1.1k 13
1.6k 12
1.5k 8
1.6k 7