一种基于微服务架构的气象数据服务平台的制作方法

文档序号:28390558发布日期:2022-01-08 00:20阅读:148来源:国知局
一种基于微服务架构的气象数据服务平台的制作方法

1.本发明涉及气象数据服务技术领域,尤其涉及一种基于微服务架构的气象数据服务平台。


背景技术:

2.随着当前全球气候的变化,极端天气现象不断出现严重影响了人们的生活,特别气象灾害给人们的生命和财产安全造成极大的威胁。人们越来越关注天气的变化,对气象服务(如天气预报等)的需求在不断提高。提供一个稳定可靠的气象数据服务平台至关重要,目前大多数气象数据服务平台的服务端架构形式还是传统的单体架构,单体架构会将应用程序的所有功能打包成一个应用安装包,并且应用部署到服务器上会运行在同一进程中。采用单体架构具有易于部署和测试等优点,但是单体架构存在以下几项缺点:业务耦合程度过高,整个项目包含的所有功能模块,模块的边界模糊,系统难以维护和升级;代码庞大,代码质量参差不齐,可维护性、灵活性降低,软件交付周期长;扩展性低,单体应用只能作为一个整体进行扩展,无法按需伸缩;可靠性低,当某个功能出现故障时,可能导致整个系统不可用。


技术实现要素:

3.有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种基于微服务架构的气象数据服务平台,以解决现有技术的不足。
4.为实现上述目的,本发明提供了一种基于微服务架构的气象数据服务平台,包括:访问层,用于通过向网关层发送请求,向服务层调用微服务;网关层,用于接收访问层的请求,进行数据认证授权、协议转换、服务路由、限流熔断;服务层,用于调用微服务层聚合结果,处理实际的业务请求;所述微服务层由业务微服务和组件微服务组成,其中业务微服务包括用户服务、订单服务、认证服务、支付服务、气象数据服务、城市数据服务、数据采集服务、其他微服务,组件微服务包括配置管理服务、注册发现服务、监控管理服务和日志收集服务;存储层,用于服务层的业务微服务和组件微服务的数据存储。
5.优选的,所述访问层包括pc浏览器、移动智能设备,所述访问层调用微服务携带token信息供网关层验证请求是否合法。
6.优选的,所述网关层首先对访问层的请求做认证授权校验,根据请求的token判断是否为合法的请求,如果不是合法的请求,直接返回错误码,如果是合法的请求,则网关层将请求路由到具体的微服务。
7.优选的,所述网关层维护一个定时任务,每隔一定的时间发送请求给服务层的注册发现服务获取微服务信息,将所有微服务的ip和端口号缓存到网关层本地,网关层根据负载均衡算法将请求发送给其中一个微服务实例。
8.优选的,所述负载均衡算法采用轮询负载均衡算法,依次调用目标微服务实例,将访问层的请求分发到服务层的不同的服务器上执行。
9.优选的,所述网关层当某个微服务发生故障导致调用频繁超时,主动熔断发生故障的微服务。
10.优选的,所述业务微服务之间的服务通信包括rest协议、rpc协议、mq协议。
11.优选的,所述配置管理服务用于管理微服务的配置信息,将散落在数据库、本地配置文件和启动参数的配置信息统一管理和维护,微服务通过mq更新本地配置信息;注册发现服务提供服务发现和服务注册,微服务启动时向注册发现服务注册服务节点信息,包括ip和端口号,注册发现服务通过心跳检查、客户端缓存等机制确保系统的高可用和可伸缩性;日志收集服务用于收集微服务日志数据,用于诊断排查错误;监控管理服务用于监控和管理各个微服务运行状态、异常告警。
12.优选的,所述存储层由mysql、redis和elasticsearch组成,业务微服务根据不同的业务特点,将数据存储在不同的数据库存储。
13.优选的,所述存储层的存储气象数据服务的数据来源不限于国家气象局、其他专业天气数据服务网站。
14.本发明的有益效果是:本发明采用的微服务架构是一种架构理念,通过将大型复杂的单体架构应用拆分成很多小应用(微服务),拆分后的各个微服务可以部署在不同的服务器上,也可以部署在相同服务器的不同容器上。每个微服务只实现单一的业务功能,可以有效地降低业务之间的耦合度,易于开发、维护和升级。遇到业务峰谷,每个微服务可以独立的做资源伸缩;每个微服务专注于单一能力,可以简化设计,结合业务和团队特点,使用更合适的技术栈;每个微服务可以有独立的开发进度,独立发布、部署和升级;微服务之间使用轻量级通信机制来进行通信,一个典型的微服务架构包括:访问层、网关层、服务层、存储层模块,根据不同应用类型及服务模块,可以增加配置管理、权限认证、熔断降级、日志监控等模块来满足服务的非功能性需求。
15.以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
16.图1是本发明的平台原理框图。
17.图2是本发明的平台车架构图。
具体实施方式
18.如图1、2所示,本发明提供了一种基于微服务架构的气象数据服务平台,包括:访问层,用于通过向网关层发送请求,向服务层调用微服务,访问层包括pc浏览器、移动智能设备;网关层,用于接收访问层的请求,进行数据认证授权、协议转换、服务路由、限流熔断;访问层所有请求都会经过网关层,网关层功能包括认证授权、协议转换、服务路由、限流熔断等;
服务层,用于调用微服务层聚合结果,处理实际的业务请求;所述微服务层由业务微服务和组件微服务组成,其中业务微服务包括用户服务、订单服务、认证服务、支付服务、气象数据服务、城市数据服务、数据采集服务、其他微服务,组件微服务包括配置管理服务、注册发现服务、监控管理服务和日志收集服务;存储层,用于服务层的业务微服务和组件微服务的数据存储。
19.访问层,访问层一般为pc浏览器,移动设备和其他终端,访问层调用微服务需要携带token信息供网关层验证请求是否合法。
20.网关层,访问层的所有请求都会经过网关层,网关层负责接收访问层的请求,网关层首先对访问层的请求做认证授权校验,根据请求的token判断是否为合法的请求,如果不是合法的请求,直接返回错误码,如果是合法的请求,则网关层将请求路由到具体的微服务。网关层维护一个定时任务,每隔一定的时间(比如30s)发送请求给服务层的注册发现服务获取微服务信息,将所有微服务的ip和端口号缓存到网关层本地,网关层根据负载均衡算法将请求发送给其中一个微服务实例,一般采用轮询负载均衡算法,依次调用目标微服务实例,将访问层的请求分发到服务层的不同的服务器上执行。当某个微服务发生故障导致调用频繁超时,网关层会主动熔断发生故障的微服务,以防止大量线程因调用故障的微服务而长期占用,发生故障的微服务恢复稳定后,网关层恢复调用。
21.服务层,服务层通常会调用其他微服务层聚合结果,处理实际的业务请求。业务微服务对外提供rest(representational state transfer,表现层状态转换)接口,供其他微服务调用。不同业务微服务之间的服务通信包括rest协议、rpc(remote procedure call,远程过程调用)协议、mq(message queue,消息队列)协议等。
22.服务管理模块,包括配置管理、注册发现服务、日志收集和监控管理。其中配置管理服务用于管理微服务的配置信息,将散落在各个地方(数据库、本地配置文件、启动参数等)的配置信息统一管理和维护,微服务通过mq更新本地配置信息;注册发现服务提供服务发现和服务注册,微服务启动时向注册发现服务注册服务节点信息,包括ip和端口号,注册发现服务通过心跳检查、客户端缓存等机制确保系统的高可用和可伸缩性;日志收集服务用于收集微服务日志数据,用于诊断排查错误;监控管理服务用于监控和管理各个微服务运行状态、异常告警等。
23.存储层,存储层用于存储气象数据服务的数据,核心的气象数据最初是来自第三方系统,这些第三方系统可以是国家气象局,也可以是其他专业天气数据服务网站(比如,gfs)。存储层由mysql、redis和elasticsearch组成,微服务根据不同的业务特点,将数据存储在不同的数据库存储。比如用户服务、订单服务、支付服务等使用mysql存储数据,认证服务使用redis存储数据,日志收集服务通常使用elasticsearch存储业务日志信息。
24.本发明采用的微服务架构是一种架构理念,通过将大型复杂的单体架构应用拆分成很多小应用(微服务),拆分后的各个微服务可以部署在不同的服务器上,也可以部署在相同服务器的不同容器上。每个微服务只实现单一的业务功能,可以有效地降低业务之间的耦合度,易于开发、维护和升级。遇到业务峰谷,每个微服务可以独立的做资源伸缩;每个微服务专注于单一能力,可以简化设计,结合业务和团队特点,使用更合适的技术栈;每个微服务可以有独立的开发进度,独立发布、部署和升级;微服务之间使用轻量级通信机制来进行通信,一个典型的微服务架构包括:访问层、网关层、服务层、存储层模块,根据不同应
用类型及服务模块,可以增加配置管理、权限认证、熔断降级、日志监控等模块来满足服务的非功能性需求。
25.上述相关术语解释:rest,全称是representational state transfer,表现层状态转换;rpc,全称是remote procedure call,远程过程调用;mq,全称是message queue,消息队列;gfs,全称是global forecast system,美国国家环境预测中心的全球预报系统。
26.以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1