一种信息化平台监控系统和构建方法
技术领域
本发明属于微服务架构监控管理设计领域,更具体地说,涉及一种信息化平台监控系统和构建方法。
背景技术
随着信息化技术的迅速发展,软件的种类和数据规模也随之越来越大,系统间的交互,系统的维护管理越来越繁琐。目前在建筑领域,很多企业已建成了BIM管理信息平台,进度管理信息平台,质量安全信息平台,在线监测信息平台等一系列业务平台,随着应用的深入,逐渐的暴露出部分使用问题:各部分系统在开发之处并考虑到未对基础数据部分进行统一的维护与管理,导致各子系统的基础数据(人员,组织机构,菜单,权限)无法进行有效的统一管理,维护难度较大;部分系统间存在交叉业务,使得数据存在逻辑上的有效联系,而各应用系统间又没法进行有效的数据交互;对于某一项工作的查看,由于比较分散(多个系统中存在),无法及时准确地从一个系统获取该工作状态。部分系统的功能冗余,产生了额外的开发,而单个系统中的功能过于繁杂,存在一个功能需要在多个系统重复维护,增加后期维护人员的工作。
目前市面上大多数企业采用SOA架构开发应用系统,SOA架构是一种粗粒度、开放式、松耦合的服务结构,要求软件产品在开发过程中,按照相关的标准或协议,进行分层开发。通过这种分层设计或架构体系可以使软件产品变得更加弹性和灵活,且尽可能的与第三方软件产品互补兼容,以达到快速扩展,满足或响应市场或客户需求的多样化、多变性。微服务架构(Microservice Architecture)这种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。相比于SOA更加精细,微服务更多地以独立的进程的方式存在,互相之间并无影响;微服务提供的接口方式更加通用化,例如HTTP RESTful方式,各种终端都可以调用,无关语言、平台限制;微服务更倾向于分布式去中心化的部署方式,在互联网业务场景下更适合。
Spring Cloud作为当下主流的微服务框架,可以让我们更简单快捷地实现微服务架构。Spring Cloud完全基于Spring Boot,为开发者提供了在分布式系统中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用。它们能够在任何分布式环境中工作,包括开发人员自己的笔记本电脑,裸物理机的数据中心,和像Cloud Foundry云管理平台。目前是很多公司已转入springcloud的使用,在未来引领这微服务架构的发展,提供业界标准的一套微服务架构解决方案。现有的springcloud仅能对接口进行监控,存在接口被随意访问的安全隐患。
发明内容
1.要解决的问题
针对现有pringcloud仅能对接口进行监控,而没有对接口进行有效管理,在接口被随意访问的安全隐患的问题,本发明提供一种一种信息化平台监控系统和构建方法。
2.技术方案
为了解决上述问题,本发明所采用的技术方案如下:
一种信息化平台监控系统构建方法,
利用spring cloud搭建各子系统间的微服务架构;
对各个子系统的运行健康状态进行监控;
当监控到各个子系统均运行健康时,收集各个子系统的接口名称,设置各个子系统的接口的访问权限和次数,管理各个子系统的接口数据。
作为优化方案,利用spring cloud搭建各子系统间的微服务架构,包括:
根据各个子系统的需求导入Ⅰ类jar包并建立微服务框架,在所述微服务框架上创建统一的权限管理服务,建立统一的注册中心,在所述微服务框架上将各子系统进行插拔注册;
所述Ⅰ类jar包为spring cloud的框架基础jar包。
作为优化方案,对各个子系统的运行健康状态进行监控,包括:
启动监控功能,通过心跳机制监控所述各个子系统的运行健康状态:当注册中心在15s内没有收到子服务返回信息,则在内部移除已注册的服务信息。
作为优化方案,在所述各个子系统中添加Ⅱ类jar包,所述Ⅱ类jar包能够收集各个子系统的接口名称,包括:
在各个子系统启动接口管理监控,利用spring cloud的扫描机制,进行接口扫描,获取所有各个子系统的接口名称,对所有接口数据进行循环遍历处理,并将获取到的接口名称存储到数据库。
作为优化方案,所述Ⅱ类jar包还能够设置所述各个子系统的接口的访问权限和次数,管理所述各个子系统的接口数据,包括:
设置各个接口的访问权限及次数,接收用户请求,对用户请求进行拦截过滤,剔除项目名,获取用户请求的接口名称,通过接口名称在数据库中匹配对应的接口,得到用户的访问权限及次数,对所述用户请求进行验证。
作为优化方案,具体验证过程包括:
若用户有访问当前接口的权限,且访问次数未超过最大值,则验证成功,放行该请求并对在数据库中更改接口请求的主体对应的访问数据;
若用户没有访问当前接口的权限或访问次数超过最大值,则验证失败,拦截请求并返回错误信息。
作为优化方案,所述接口的名称、唯一标识和接口已访问次数存放在redis内存中。
一种信息化平台监控系统,
部署模块,利用spring cloud搭建各子系统间的微服务架构;
监控模块,对各个子系统的运行健康状态进行监控;
接口使用管理模块,当监控到各个子系统均运行健康时,收集各个子系统的接口名称,设置各个子系统的接口的访问权限和次数,管理各个子系统的接口数据。
一种可读存储介质,其上存储有程序,所述程序被处理器执行时,实现信息化平台监控系统构建方法的各步骤。
一种服务器,包括存储器和处理器,所述存储器,用于存储程序,所述处理器用于执行所述程序,实现信息化平台监控系统构建方法的各步骤。
3.有益效果
相比于现有技术,本发明的有益效果为:
(1)本发明通过spring cloud搭建微服务框架,将开发标准、数据中心和安全验证功能进行统一管理,各个子系统之间能够进行有效的数据交互,便于系统的整体管理以及维护人员的实时管控。现有spring cloud搭建的系统往往仅对接口进行监控,在被第三方使用时,存在被修改的风险,本发明根据系统自身需求自定义设置接口的访问权限与次数,有效地将各个子系统的接口的访问权限和次数管理起来,从而有效降低接口被非法恶意访问的安全隐患。
(2)采用spring cloud的基础jar包搭建微服务架构能够降低子系统之间的耦合度,降低系统功能的繁杂程度,避免系统功能的重复维护。
(3)心跳机制间隔过短,会加重网络负担,过长又容易反应不及时,本发明通过15s的心跳机制对各个子系统的运行健康状态进行实时监控,能够实时获取到子模块服务是否在线或者正常运行的信息,避免因服务宕机长时间无法定位。
(4)收集接口名称能够将各个子系统中的接口持久化到数据库中,以便后续通过接口名称进行管理,利用spring cloud的扫描机制进行接口收集降低了人为整理的出错率,提高了工作效率,并且可以实时更新增加、删除接口。
(5)通过设置各个接口的访问权限和次数,根据需求设置访问权限和次数,并对用户请求进行验证,使得整个微服务系统不仅仅能够实现查看接口的功能,更能够对接口进行有效管理,进一步降低了接口被非法恶意访问的可能。
(6)现有spring cloud架构往往没有安全机制,本发明基于访问权限和次数的验证机制,一方面可以收集接口被访问次数,从而实时地根据访问次数对服务器进行分布式部署;另一方面能够过滤掉没有访问资格的用户请求,拦截恶意和非法访问,保证系统的安全性。
(7)为解决被请求接口的高并发引起查询性能降低的问题,本发明通过定时器将数据库中关于当前系统的接口部分信息存放于redis中,能够有些降低接口数据的查询压力,提高对接口进行调用管理的效率。
附图说明
图1为本发明方法流程图。
具体实施方式
下面结合具体实施例对本发明进一步进行描述。
实施例1
一种信息化平台监控系统构建方法,如图1所示,
S1、利用spring cloud搭建各子系统间的微服务架构;
根据各个子系统的需求导入Ⅰ类jar包并建立微服务框架,在微服务框架上创建统一的权限管理服务,建立统一的注册中心,在微服务框架上将各子系统进行插拔注册;Ⅰ类jar包为spring cloud的框架基础jar包;采用spring cloud的基础jar包搭建微服务架构能够降低子系统之间的耦合度,降低系统功能的繁杂程度,避免系统功能的重复维护。
Jar包:一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。
S2、对各个子系统的运行健康状态进行监控;
启动监控功能,通过心跳机制监控各个子系统的运行健康状态:当注册中心在15s内没有收到子服务返回信息,则在内部移除已注册的服务信息;当15s没有收到子系统反馈信息后即视为状态不健康,系统给与移除处理。
心跳机制间隔过短,会加重网络负担,过长又容易反应不及时,15s的心跳机制对各个子系统的运行健康状态进行实时监控,能够实时获取到子模块服务是否在线或者正常运行的信息,避免因服务宕机长时间无法定位。
S3、当监控到各个子系统均运行健康时,收集各个子系统的接口名称,设置各个子系统的接口的访问权限和次数,管理各个子系统的接口数据,接口数据包括接口名称、所属项目名称、数据采集时间、接口的访问权限和次数。
S31、在各个子系统中添加Ⅱ类jar包,Ⅱ类jar包能够收集各个子系统的接口名称,包括:
在各个子系统启动类添加@InterfaceManage启动接口管理监控,利用springcloud的扫描机制,进行接口扫描,获取各个子系统的接口名称,对接口数据进行循环遍历处理,并将获取到的接口名称存储到数据库。
收集接口名称能够将各个子系统中的接口持久化到数据库中,以便后续通过接口名称进行管理,利用spring cloud的扫描机制进行接口收集降低了人为整理的出错率,提高了工作效率,并且可以实时更新增加、删除接口。
S32、Ⅱ类jar包还能够设置各个子系统的接口的访问权限和次数,管理各个子系统的接口数据,包括:
设置各个接口的访问权限及次数,接收用户请求,对用户请求进行拦截过滤,剔除项目名,获取用户请求的接口名称,通过接口名称在数据库中匹配(按照接口名称字段name去匹配)对应的接口,得到用户的访问权限及次数,对用户请求进行验证。
通过设置各个接口的访问权限和次数,根据需求设置访问权限和次数,并对用户请求进行验证,使得整个微服务系统不仅仅能够实现查看接口的功能,更能够对接口进行有效管理,进一步降低了接口被非法恶意访问的可能。
S33、若用户有访问当前接口的权限,且访问次数未超过最大值,则验证成功,过滤器放行该请求并对在数据库中更改接口请求的主体对应的访问数据;
若用户没有访问当前接口的权限或访问次数超过最大值,则验证失败,过滤器拦截请求并返回错误信息。
现有spring cloud架构往往没有安全机制,本实施例基于访问权限和次数的验证机制,一方面可以收集接口被访问次数,从而实时地根据访问次数对服务器进行分布式部署;另一方面能够过滤掉没有访问资格的用户请求,拦截恶意和非法访问,保证系统的安全性。本实施例还能对接口调用的时间及被访问次数进行比对,动态扩展系统(多实例部署),以满足系统使用高峰期。
接口的名称、唯一标识和接口已访问次数通过定时器存放在redis服务器内存中。
为解决被请求接口的高并发引起查询性能降低的问题,本实施例通过定时器将数据库中关于当前系统的接口部分信息存放于redis服务器中,能够有些降低接口数据的查询压力,提高对接口进行调用管理的效率。
本实施例通过spring cloud搭建微服务框架,将开发标准、数据中心和安全验证功能进行统一管理,各个子系统之间能够进行有效的数据交互,便于系统的整体管理以及维护人员的实时管控。现有spring cloud搭建的系统往往仅对接口进行监控,在被第三方使用时,存在被修改的风险,本实施例根据系统自身需求自定义设置接口的访问权限与次数,有效地将各个子系统的接口的访问权限和次数管理起来,从而有效降低接口被非法恶意访问的安全隐患。
实施例2
一种信息化平台监控系统,
部署模块,利用spring cloud搭建各子系统间的微服务架构,执行实施例1中的步骤S1;
监控模块,对各个子系统的运行健康状态进行监控,执行实施例1中的步骤S2;
接口使用管理模块,当监控到各个子系统均运行健康时,收集各个子系统的接口名称,设置各个子系统的接口的访问权限和次数,管理各个子系统的接口数据,执行实施例1中的步骤S3。
本发明的信息化平台监控系统,基于物联网的大环境,通过软硬件结合实时采集监测施工过程中的各种数据,并实时对数据进行处理,提供数据展示功能。例如数据采集子系统负责硬件数据的接收,数据查看展示子系统负责对外提供数据查看接口,整个系统部署后,系统jar包会收集系统中的所有接口信息(数据展示接口,例:/dictionaryFamily/getDictionaryList;数据保存接口,例:/calculate/parseData),系统正常运行后,我们可以根据系统的需要设置各个接口的访问权限和次数,系统运行过程中我们会对第三方提供部分数据展示的接口,本实施例通过对数据展示的接口的访问权限和次数进行有效管理,能够保证数据展示的接口的安全性。
实施例3
实施例3提供了一种可读存储介质,其上存储有程序,程序被处理器执行时,实现实施例1的信息化平台监控系统构建方法的各步骤。
本实施例的计算机可读存储介质可以是终端的硬盘、内存以及其他可用的外部存储设备(如U盘、移动硬盘等)。本实施例的可读存储介质不仅可以用于存储上述计算机程序以及所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
例如,可读存储器也可以是服务器上的存储器,该存储器和处理器一起安装在服务器上,存储器用于存储程序,处理器用于执行程序,实现信息化平台监控系统构建方法的各步骤。
实施例1的方法以软件功能单元的形式实现、并作为独立的产品销售或使用时,可以采用本实施例的计算机可读取存储介质的形式。