本技术涉及计算机,尤其是涉及一种基于微服务的动力与环境监控系统及方法。
背景技术:
1、动力与环境监控系统是部队后勤保障的重要内容,其用于监控供电设备、供暖设备、供水设备、燃气设备的运行状态及所处的环境状态。目前,供电、供暖、供水、燃气等数据分别存储至各自的数据库中,互联互通较差,信息孤岛情况严重,协同处理能力较弱,缺乏统一的监控管理。用户想要使用这些数据时,需要分别从各个数据库中获取这些数据,数据使用过程较为繁琐。
技术实现思路
1、有鉴于此,本技术的目的在于提供一种基于微服务的动力与环境监控系统及方法,以提高对数据管理的统一性,提高数据使用的便捷程度。
2、第一方面,本技术实施例提供了一种基于微服务的动力与环境监控系统,所述系统包括:流量接入层、至少一个业务网关、微服务模块、微服务注册中心;
3、所述流量接入层,用于接收用户端发送的用户请求,以及根据配置策略,将所述用户请求发送至对应的业务网关;所述用户请求包括数据获取请求和/或数据分析请求;
4、所述业务网关,用于对所述用户请求中携带的用户登录账号进行鉴权,判断所述用户登录账号是否有访问权限;以及在所述用户登录账号有访问权限时,根据所述用户请求中携带的请求内容,从所述微服务模块包含的各个微服务中确定出所述请求内容对应的目标微服务;
5、所述微服务模块,用于从所述微服务注册中心中确定出所述目标微服务的微服务地址,以及通过该微服务地址访问所述目标微服务,使用所述目标微服务响应所述用户请求,并将请求结果发送至所述用户端。
6、结合第一方面,本技术实施例提供了第一方面的第一种可能的实施方式,其中,所述系统还包括:缓存组件;当所述用户请求为所述数据获取请求时,所述微服务模块在用于使用所述目标微服务响应所述用户请求时,具体用于:
7、使用所述目标微服务访问所述缓存组件,判断所述缓存组件中是否缓存有所述数据获取请求对应的请求数据;当所述缓存组件中缓存有所述请求数据时,使用所述目标微服务从所述缓存组件中获取所述请求数据;当所述缓存组件中未缓存有所述请求数据时,使用所述目标微服务从数据库中获取所述数据获取请求对应的请求数据,并将获取到的请求数据缓存至所述缓存组件;
8、所述缓存组件,用于缓存所述目标微服务从所述数据库中获取到的请求数据;以及监测缓存的各个请求数据是否超过该请求数据的有效日期;当超过所述有效日期时,将该请求数据从所述缓存组件中删除;每个所述请求数据的有效日期的长短与该请求数据的使用率呈正相关关系。
9、结合第一方面,本技术实施例提供了第一方面的第二种可能的实施方式,其中,所述系统还包括:分布式锁;所述用户请求中包含有多个子请求;每个所述子请求对应各自的目标微服务;
10、所述分布式锁,用于判断同一所述用户请求中的各个子请求各自对应的目标微服务在响应子请求时是否均响应成功;当均响应成功时,所述微服务模块将包含各个子请求结果的请求结果发送至所述用户端;当存在至少一个子请求未响应成功时,所述微服务模块向所述用户端发送用于表示请求响应失败的提示信息。
11、结合第一方面,本技术实施例提供了第一方面的第三种可能的实施方式,其中,所述系统还包括:日志;
12、所述日志,用于记录所述流量接入层接收到的各个所述用户请求,以及所述业务网关对各个所述用户请求的鉴权结果,以及所述微服务模块针对各个所述用户请求的请求结果。
13、结合第一方面,本技术实施例提供了第一方面的第四种可能的实施方式,其中,所述系统还包括任务调度中心;当所述用户请求为周期性的数据获取请求时,所述任务调度中心,用于:
14、周期性调用所述微服务模块,以使所述微服务模块周期性通过该用户请求对应的微服务地址访问该用户请求对应的目标微服务,以及周期性使用该目标微服务响应该用户请求,周期性的将当前的请求结果发送至所述用户端。
15、结合第一方面,本技术实施例提供了第一方面的第五种可能的实施方式,其中,所述流量接入层在用于根据配置策略,将所述用户请求发送至对应的业务网关时,具体用于:
16、当所述业务网关为一个时,将所述用户请求发送至所述业务网关的队列中;
17、当所述业务网关为多个时,根据各个业务网关的处理能力和/或剩余负载,将所述用户请求发送至对应的业务网关。
18、结合第一方面,本技术实施例提供了第一方面的第六种可能的实施方式,其中,所述微服务模块在用于使用所述目标微服务响应所述用户请求时,具体用于:
19、所述目标微服务根据所述用户请求中携带的所述请求内容,调用预设的sql语句;
20、对预设的sql语句进行格式化预处理,得到第一sql语句;
21、使用sql解析器对所述第一sql语句进行解析,得到目标sql语句;
22、所述目标微服务使用所述sql语句响应所述用户请求。
23、结合第一方面,本技术实施例提供了第一方面的第七种可能的实施方式,其中,所述系统还包括系统版本控制模块;
24、所述系统版本控制模块,用于在对所述基于微服务的动力与环境监控系统进行系统版本升级后,当系统版本升级后的基于微服务的动力与环境监控系统存在故障时,将当前的系统版本切换至进行系统版本升级之前的系统版本。
25、结合第一方面,本技术实施例提供了第一方面的第八种可能的实施方式,其中,所述数据获取请求和/或所述数据分析请求中的数据包括以下中的任意一种或多种:供电数据、供暖数据、供水数据、燃气数据以及各个设备所处的环境数据。
26、第二方面,本技术实施例还提供一种基于微服务的动力与环境监控方法,所述方法应用于基于微服务的动力与环境监控系统,所述基于微服务的动力与环境监控包括:流量接入层、至少一个业务网关、微服务模块、微服务注册中心,所述方法包括:
27、通过所述流量接入层接收用户端发送的用户请求,以及根据配置策略,将所述用户请求发送至对应的业务网关;所述用户请求包括数据获取请求和/或数据分析请求;
28、通过所述业务网关对所述用户请求中携带的用户登录账号进行鉴权,判断所述用户登录账号是否有访问权限;
29、在所述用户登录账号有访问权限时,所述业务网关根据所述用户请求中携带的请求内容,从所述微服务模块包含的各个微服务中确定出所述请求内容对应的目标微服务;
30、通过所述微服务模块从所述微服务注册中心中确定出所述目标微服务的微服务地址,以及通过该微服务地址访问所述目标微服务,使用所述目标微服务响应所述用户请求,并将请求结果发送至所述用户端。
31、结合第二方面,本技术实施例提供了第二方面的第一种可能的实施方式,其中,所述系统还包括:缓存组件;当所述用户请求为所述数据获取请求时,所述使用所述目标微服务响应所述用户请求,包括:
32、使用所述目标微服务访问所述缓存组件,判断所述缓存组件中是否缓存有所述数据获取请求对应的请求数据;
33、当所述缓存组件中缓存有所述请求数据时,使用所述目标微服务从所述缓存组件中获取所述请求数据;
34、当所述缓存组件中未缓存有所述请求数据时,使用所述目标微服务从数据库中获取所述数据获取请求对应的请求数据,并将获取到的请求数据缓存至所述缓存组件;
35、通过所述缓存组件缓存所述目标微服务从所述数据库中获取到的请求数据;以及监测缓存的各个请求数据是否超过该请求数据的有效日期;
36、当超过所述有效日期时,将该请求数据从所述缓存组件中删除;每个所述请求数据的有效日期的长短与该请求数据的使用率呈正相关关系。
37、结合第二方面,本技术实施例提供了第二方面的第二种可能的实施方式,其中,所述系统还包括:分布式锁;所述用户请求中包含有多个子请求;每个所述子请求对应各自的目标微服务;所述方法还包括:
38、通过所述分布式锁判断同一所述用户请求中的各个子请求各自对应的目标微服务在响应子请求时是否均响应成功;
39、当均响应成功时,所述微服务模块将包含各个子请求结果的请求结果发送至所述用户端;
40、当存在至少一个子请求未响应成功时,所述微服务模块向所述用户端发送用于表示请求响应失败的提示信息。
41、结合第二方面,本技术实施例提供了第二方面的第三种可能的实施方式,其中,所述系统还包括:日志;所述方法还包括:
42、通过所述日志记录所述流量接入层接收到的各个所述用户请求,以及所述业务网关对各个所述用户请求的鉴权结果,以及所述微服务模块针对各个所述用户请求的请求结果。
43、结合第二方面,本技术实施例提供了第二方面的第四种可能的实施方式,其中,所述系统还包括任务调度中心;当所述用户请求为周期性的数据获取请求时,所述方法还包括:
44、通过所述任务调度中心周期性调用所述微服务模块,以使所述微服务模块周期性通过该用户请求对应的微服务地址访问该用户请求对应的目标微服务,以及周期性使用该目标微服务响应该用户请求,周期性的将当前的请求结果发送至所述用户端。
45、结合第二方面,本技术实施例提供了第二方面的第五种可能的实施方式,其中,所述通过所述流量接入层接收用户端发送的用户请求,以及根据配置策略,将所述用户请求发送至对应的业务网关,包括:
46、当所述业务网关为一个时,将所述用户请求发送至所述业务网关的队列中;
47、当所述业务网关为多个时,根据各个业务网关的处理能力和/或剩余负载,将所述用户请求发送至对应的业务网关。
48、结合第二方面,本技术实施例提供了第二方面的第六种可能的实施方式,其中,所述使用所述目标微服务响应所述用户请求,包括:
49、所述目标微服务根据所述用户请求中携带的所述请求内容,调用预设的sql语句;
50、对预设的sql语句进行格式化预处理,得到第一sql语句;
51、使用sql解析器对所述第一sql语句进行解析,得到目标sql语句;
52、所述目标微服务使用所述sql语句响应所述用户请求。
53、结合第二方面,本技术实施例提供了第二方面的第七种可能的实施方式,其中,所述系统还包括系统版本控制模块;所述方法还包括:
54、在对所述基于微服务的动力与环境监控系统进行系统版本升级后,当系统版本升级后的基于微服务的动力与环境监控系统存在故障时,通过所述系统版本控制模块将当前的系统版本切换至进行系统版本升级之前的系统版本。
55、结合第二方面,本技术实施例提供了第二方面的第八种可能的实施方式,其中,所述数据获取请求和/或所述数据分析请求中的数据包括以下中的任意一种或多种:供电数据、供暖数据、供水数据、燃气数据以及各个设备所处的环境数据。
56、本技术实施例提供的一种基于微服务的动力与环境监控系统及方法,其中该系统包括:流量接入层、至少一个业务网关、微服务模块、微服务注册中心;流量接入层,用于接收用户端发送的用户请求,以及根据配置策略,将用户请求发送至对应的业务网关;用户请求包括数据获取请求和/或数据分析请求;业务网关,用于对用户请求中携带的用户登录账号进行鉴权,判断用户登录账号是否有访问权限;以及在用户登录账号有访问权限时,根据用户请求中携带的请求内容,从微服务模块包含的各个微服务中确定出请求内容对应的目标微服务;微服务模块,用于从微服务注册中心中确定出目标微服务的微服务地址,以及通过该微服务地址访问目标微服务,使用目标微服务响应用户请求,并将请求结果发送至用户端。该实施例中,通过一个基于微服务的动力与环境监控系统管理所有的数据,有利于提高对数据管理的统一性;并且,用户只需从一个系统中获取各类数据,相比于分别从各个数据库中获取各个数据,该方式有利于提高用户使用数据的便捷程度。
57、为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。