线性扩容的和性能高效的图数据库
更新日期:2022-03-23     浏览次数:108
核心提示:1.2 前端框架和组件前端的实现采用了Vue2.0的开发框架,它是一套构建用户界面的渐进式MVVM框架,工程初始化时采用了Vue-Cli进行项目框架的搭建。系统

1.2  前端框架和组件

前端的实现采用了Vue2.0的开发框架,它是一套构建用户界面的渐进式MVVM框架,工程初始化时采用了Vue-Cli进行项目框架的搭建。系统选用了ElementUI和Ecarts组件库,实现表格、表单和图表的编辑和显示功能。同时为了能够有效地处理前端图形化的数据,使用了蚂蚁金服的Antv-X6组件进行拓扑图形的编辑和显示,Antv-X6组件支持最多1万个节点的编辑,因此本系统主要处理的是中小型企业网络,前端拓扑图自动发现时的渐进显示采用了websocket的通信机制。

1.3  后端框架和组件

后端的实现选用了Spring Boot框架,Spring Boot是 Pivotal 团队在 Spring 的基础上提供的全新的开源框架,它去除了大量的 XML 配置文件,简化了复杂的依赖管理。关系型数据库选用了Mysql,内存数据库选用了Redis,图数据库选择了国产的Nebula Graph图数据库,其中Nebula Graph是一种可靠的、分布式的、线性扩容的和性能高效的图数据库,此处如果选用Neo4j图数据库也是可行的。消息订阅和通知选用了kafka组件。

1.4  数据结构

该系统的数据结构分为2种,第一种是图形结构,存储在Nebula Graph图数据库中,图由点和边构成,点的数据结构包括点的id,x、y坐标,点的属性等;边的数据结构包括边的id,起点和终点的id,边路径上各个节点的坐标,以及边的属性等。第二种是关系型数据结构,主要用于存储工控网络资产的详细信息,例如资产的名称、ip、位置、标签、mac地址、分组、分类和描述信息等,此处通过资产的id和图数据库中点的id进行关联,Nebula Graph更偏向于图形化数据的存储,Mysql更偏向于资产关系型数据的存储。