多个微服务都有独立的 DB 作为数据存储, 现在个别微服务需要查询展示的数据为多个微服务的汇总数据; 也就是需要跨微服务跨库的联表查询; 我知道这样设计是有问题的, 但是现实的业务已经有这种问题需要去解决了。 尽量不干扰数据写入, 只考虑数据读取过程就可以,如果实在没办法,需要干扰数据写入过程的也可以
不知道各位大佬有没有什么好的解决方案, 或者想法的?
1
iamaprin 2018-11-25 20:53:34 +08:00
定时任务吧,将汇总数据处理好存表。
|
2
DaeDaluS OP @iamaprin 现在做的类似于云平台,比如查一个用户最近三个月的订单,分别在用户系统和订单系统两个服务模块里;这样的数据没办法做预先的统计。
最好的是能实时高效的查询那种 |
3
anyele 2018-11-25 21:57:02 +08:00 via Android
还是只有不同微服务提供接口查
|
4
HuHui 2018-11-25 21:59:40 +08:00 via Android
redis
|
5
jimages 2018-11-25 22:29:09 +08:00
再写一个微服务,去调用这两个微服务,做联表查询,并且做成定时任务。
|
6
megachweng 2018-11-25 22:30:21 +08:00 via iPhone
我的想法是再起个 Quartz 服务,定时调一下基础服务的接口,缓存一段时间
|
7
ghos 2018-11-26 09:37:50 +08:00
存的时候多存一份统计数据
|
9
DaeDaluS OP @jimages 这个当前微服务想要做的就是这个;但是代码处理麻烦,还可能处理不了,所以才想找一个有效的方案
|
10
DaeDaluS OP @megachweng 数据量大,尤其是业务数据,会经常变,这种做法只能满足基础数据,
|
12
specture 2018-11-26 11:06:19 +08:00
ETL+OLAP。ETL 过程可以用开源的组件或者商业组件或者自己实现。个人觉得设计上按照你说的没有特别大的问题。
|