开发者社区> 问答> 正文

分布式服务环境下的查询方案如何做?

技术大牛们好!首先感谢阿里妹开展的提问活动。有个这样的问题,没想好完整的好的解决方案,想咨询一下:

如题,当前企业系统架构基本都采用微服务设计,部署为多个服务系统集群,带来的是数据的分散或孤岛,在面临客户查询或运营支持查询时,透出的数据需要来自多个系统(或微服务)的查询接口,在此基础上做加工才能对外透出。

由于历史原因等因素,简要来说,当前实现是建立了“索引库”,通过消息异步处理冗余存储了一部分的索引数据,通过索引再调用微服务的接口来实现查询透出。

但在实施过程中遇到不少难处: 1、依赖的服务接口可能不满查询数据范围要求,需要改造;2、调用过程存在多个,冗长,可能出现效率问题; 3、无法解决统计类数据的加工; 4、本身依赖服务的是交易系统,提供查询服务不合理; 5、做查询的是一波人,提供服务的是另一波人,前者很难驱动后者去改造接口; 6、无法提供配置化的查询实现,可能业务经常改动需要查询的字段(本来设想的是在划分好领域模型(相对稳定)的基础上,形成全量的查询字段,再提供配置化能力);

请问微服务的背景下: 1、在高并发、大数据量的情况下如何解决查询,有没有好的解决方案; 2、在传统企业,没有太大数据量和并发量的情况下,又有什么好的解决方案; 3、上述难处6如何解决,提供配置化的能力,避免客户查询要求导致的频繁开发加减字段;还是说这个是伪需求? 4、数据冗余如果做?当前就做了一个索引库,由于上游bug等原因也经常导致数据不一致。而且索引库看来没有自己的领域模型,是否属于“一份数据存两个地方”的错误设计。

描述有点多,万分感谢!

展开
收起
游客n2lrpxly7rohu 2020-01-09 12:04:57 915 0
1 条回答
写回答
取消 提交回答
  • 技术架构师 阿里云开发者社区技术专家博主 CSDN签约专栏技术博主 掘金签约技术博主 云安全联盟专家 众多开源代码库Commiter

    描述的地方有点不明白,大致上从微服务的查询入手,提供一下思路 1. 在高并发大数量的情况下,可以配合高可用缓存再加非关系数据库ES,可以提供一个不错的查询保障。 2. 如果数据量太大,且对数据有足够多的处理,那么建议,建立数据中心,建立单独的数仓服务,提供数仓的查询,可以采用大数据spark等

    2020-01-09 14:08:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于社区的分布式 风险感知模型 立即下载
如何利用Redisson分布式化传统Web项目 立即下载
FLASH:大规模分布式图计算引擎及应用 立即下载