自定义查询系统设计分析

2018-11-12  本文已影响0人  wangzhen3798

自定义查询系统设计分析

背景

最近参与某新自定义查询系统开发,系统是锋哥设计的,核心代码也是锋哥写的。作为一个搬砖者自下而上的分析学习一下大神的系统设计。文中的谈到架构设计内容是根据对代码理解重新整理出来的,不代表系统的实际架构和实现。同时由于业务和技术的复杂性及其他原因,不对实现细节作说明。

设计场景

在该系统之前已经有两个自定义查询系统,一个为竞争对手的CS系统,一个为我司开发的BS系统。两个系统均用了MS SQLSERVER为数据存储和查询引擎,实现的业务功能很多,同时也有比较严重的性能问题。新系统的主要使命是用新技术提高自定义查询性能,改善可用性,同时对飙竞争对手的系统。因此也有很多设计上不合理但必须的功能。

必备知识

系统中用到了一些新技术,这些新技术或者非主流的技术是该系统实现的基石,这里做一个简单介绍。

逻辑架构

系统的主要目的是将若干业务系统的数据信息,清洗转换汇聚到ES中,利用ES在查询方面的性能优势,来实现自定义查询。系统逻辑上大概可以分为以下几个模块:

在这里插入图片描述

数据模型

数据同步

通过以下几个主要的步骤实现数据从业务库到ES中的同步:

在这里插入图片描述

数据清洗

系统通过以下几个步骤实现数据的装载和转换:

在这里插入图片描述

查询引擎

系统主要以流水线得思想将一个复杂的查询拼装,分配给各组件完成,并统一组装,主要有嵌套查询流水线、父子查询流水线、子父查询流水线等

在这里插入图片描述

模板引擎

模板引擎主要将大量重复劳动或者需要灵活变动或者特殊对应关系的代码用模板生成,主要生成前端Html、pojo类,mapper映射和其他元数据磁盘缓存等。

在这里插入图片描述

对外服务

系统总结

首先,优点:

其次,缺点:

上一篇 下一篇

猜你喜欢

热点阅读