计算机软件系统中基于云计算的实时事件处理系统及方法技术方案

技术编号:8215497 阅读:202 留言:0更新日期:2013-01-17 12:51
本发明专利技术涉及一种计算机软件系统中基于云计算的实时事件处理系统及方法,属于计算机软件应用技术领域。该系统包括SEDA分布式消息框架和Redis核心内存处理框架。利用该系统的方法包括接收消息操作和发送消息操作。通过该方法将分布式消息框架和Redis核心内存处理框架融合,从而可以有效地应对高并发请求与大数据量处理需求,实现复杂的业务逻辑处理流程,满足高吞吐量、低延迟的性能要求,并且有效控制系统资源、提高运行过程的可靠性,达到性能可以分段设计,在一定范围内自由伸缩的目标,适合应用于性能要求苛刻的业务活动监控或准实时分析类系统中,且本发明专利技术的计算机软件系统中基于云计算实现实时事件处理的系统及方法,其系统结构简单,应用成本低廉。

【技术实现步骤摘要】

本专利技术涉及计算机软件应用
,特别涉及计算机软件系统中的事件处理
,具体是指一种。
技术介绍
当今是一个IT事件爆发的时代,每一个应用软件系统都在不停地产生着大量的事件。云计算环境下的海量事件的捕获、实时处理、准实时分析已经成为当前乃至未来若干年的网络信息技术的一个重要领域。当各个应用系统均以主动推送的方式发送实时事件时,要做到高吞吐量下的低延迟处理就成为一个棘手的技术问题。业界在解决大数据量实时处理的问题时,呈现着百花齐放的状况。例如有的方案把事件统一发送到一个消息中间件集群中,以此为中介再发送到订阅消息的客户端;有的方案则利用分布式计算框架把事件分发到不同的机器上处理;有的则强调流计算的概念, 把事件送入数据流并根据预先配置好的模式或规则进行不停的匹配。以上技术方案在事件处理逻辑复杂冗长,特别在需要与大量历史数据关联处理的情况下显得能力不足。例如,在BAM (Business Activity Monitoring,业务活动监控)等实时监控与准实时分析类的系统中,当我们接收到大量的实时业务数据时,每一条都要与过去一年甚至更长周期中的数据做关联计算;每一条都会经过一个复杂冗长的处理流程,如数据串联、还原为流程数据、对流程数据做违规判断、进入数据仓库或KPI (KeyPerformance Indication)指标引擎。在这种复杂的应用场景下,很多通用的技术方案会显得力不从心,分布式计算技术能带来更多的CPU和内存,但要与海量历史数据做串联操作,瓶颈却在关系数据库;消息中间件集群虽然能快速的存储和转发事件,但一连串冗长的处理将全部抛给一个客户端机器,每一个处理环节无法根据其特点做单独的性能设计;流计算技术也无法解决时间窗口过长带来的存储与延迟的问题。SEDA (Staged Event-Driven Architecture,分阶段事件驱动架构)可以把一个请求处理过程分成几个Stage (阶段),不同资源消耗的Stage使用不同数量的线程来处理、使用不同数量不同配置的机器来承载,支持同一个Stage的并行处理,支持多个Stage间的串行处理,Stage间使用事件驱动的异步通信模式,其设计目标就是支持大规模并发处理、简化系统开发、支持资源管理。内存数据库也称为NoSQL数据库或非关系型数据库,传统的缓存技术在未命中的时候仍然会查询关系数据库,这在频繁更新的场景下并不能显著提升性能,反而使处理逻辑更加复杂。内存数据库则可以在一些场景下完全取代关系数据库,在大数据量的时代背景下,在高吞吐量低延迟的实时需求下,以关系数据库为核心的架构正在向着以内存技术为核心的架构发展,没有内存技术的业务逻辑看似正确,然而却已经难堪重负
技术实现思路
本专利技术的目的是克服了上述现有技术中的缺点,提供一种将SEDA与内存数据库相融合,可以应对实时监控或准实时分析类系统中的高并发请求与大数据量处理,实现复杂的业务逻辑处理流程,满足高吞吐量、低延迟的性能需求,并且有效控制系统资源、提高运行过程的可靠性,达到性能可以分段设计,在一定范围内自由伸缩的目标,适合应用于性能要求苛刻的业务活动监控或准实时分析类系统中,且系统结构简单,成本低廉的计算机软件系统中基于云计算实现实时事件处理的系统及方法。为了实现上述的目的,本专利技术的计算机软件系统中基于云计算实现实时事件处理的系统具有如下构成该系统包括SEDA分布式消息框架和Redis (REmote Dictionary Server,远程目录服务器)核心内存处理框架。 其中,SEDA分布式消息框架包括控制平台、配置数据库和服务容器,所述的控制平台和服务容器均连接所述的配置数据库,所述的服务容器包括容器基础模块、消息处理服务模块、路由模块、服务解析模块和返回监听模块;所述的消息处理服务模块包括至少一个业务逻辑单元和六个消息通道,所述的各业务逻辑单元对应不同的服务应用业务,所述的业务逻辑单元通过所述的消息通道连接所述的Redis核心内存处理框架,所述的六个消息通道为请求接出通道、请求接入通道、返回接出通道、返回接入通道、错误接出通道和错误接入通道。而Redis核心内存处理框架包括多个Redis服务器、关系数据库、模板工具模块、连接池服务模块、数据分片服务模块、主从热备模块、数据同步服务模块和在线扩容模块。其中,模板工具模块对外提供的接口,连接所述的SEDA分布式消息框架;连接池服务模块对应每一个所述的Redis服务器提供一个连接池;数据分片服务模块将数据分布存储于不同的Redis服务器中;主从热备模块为每一个所述的Redis服务器配置一台从服务器,Redis核心内存处理框架自动检测主从的状态并在主机宕机时切换到对应的从服务器;数据同步服务模块维护一个写缓冲队列,缓冲队列到达一定数量后将写入所述的关系数据库;在线扩容模块用以支持在不间断运行的状况下对所述的Redis核心内存处理框架进行扩容。该计算机软件系统中基于云计算实现实时事件处理的系统中,所述的容器基础模块包括资源管理单元、超时管理单元、心跳服务单元、集群通知单元、远程通信单元、负载均衡单元、通道管理单元和消息创建工具单元,所述的资源管理单元、超时管理单元、心跳服务单元、集群通知单元、远程通信单元、负载均衡单元、通道管理单元和消息创建工具单元均连接所述的服务容器。本专利技术还提供一种利用所述的系统进行基于云计算实现实时事件处理的方法,该方法包括接收消息操作和发送消息操作。所述的接收消息操作包括以下步骤(al)所述的SEDA分布式消息框架进行启动初始化;(a2)所述的Redis核心内存处理框架进行启动初始化;(a3)所述的SEDA分布式消息框架接收到http请求包,并将该http请求包反序列化为消息;(a4)系统调用所述的Redis核心内存处理框架的模板工具模块将消息持久化到Redis服务器;(a5)系统根据所述消息的消息头判断消息为请求消息还是返回消息;(a6)如果是请求消息,则将消息发送到所述的请求接入通道,并寻找对应的业务逻辑单元进行处理;(a7)如果是返回消息,则将消息发送到所 述的返回接入通道,并寻找对应的业务逻辑单元进行处理;(a8)所述的请求接入通道调用所述的连接池服务模块进行消息处理;(a9)所述的消息的业务逻辑代码通过所述的Redis核心内存处理框架来实现,并与所述的关系数据库解耦合;(alO)所述的消息的业务逻辑构建返回消息并调用服务容器进行发送。所述的发送消息操作包括以下步骤(bl)所述的SEDA分布式消息框架进行启动初始化;(b2)所述的Redis核心内存处理框架进行启动初始化;(b3)业务代码通过调用容器基础模块的消息创建工具单元,将业务对象包装为消息,并调用服务容器分发接口 ;(b4)如果是双向消息,业务代码调用所述的返回监听模块和容器基础模块的超时管理单元进行监听;(b5)系统根据所述消息的消息头确定对应的接出通道;(b6)所述的接出通道根据所述的消息头确定对应的路由信息为本地路由或远程路由;(b7)如果是本地路由,则直接投递到本地的消息接入通道;(b8)如果是远程路由,则序列化消息并通过http远程工具发送。该进行基于云计算实现实时事件处理的方法中,所述的SEDA分布式消息框架进行启动初始化,具体包本文档来自技高网
...

【技术保护点】
一种计算机软件系统中基于云计算实现实时事件处理的系统,其特征在于,所述的系统包括SEDA分布式消息框架和Redis核心内存处理框架;所述的SEDA分布式消息框架包括控制平台、配置数据库和服务容器,所述的控制平台和服务容器均连接所述的配置数据库,所述的服务容器包括容器基础模块、消息处理服务模块、路由模块、服务解析模块和返回监听模块;所述的消息处理服务模块包括至少一个业务逻辑单元和六个消息通道,所述的各业务逻辑单元对应不同的服务应用业务,所述的业务逻辑单元通过所述的消息通道连接所述的Redis核心内存处理框架,所述的六个消息通道为请求接出通道、请求接入通道、返回接出通道、返回接入通道、错误接出通道和错误接入通道;所述的Redis核心内存处理框架包括多个Redis服务器和关系数据库,还包括模板工具模块,对外提供的接口,连接所述的SEDA分布式消息框架;连接池服务模块,对应每一个所述的Redis服务器提供一个连接池;数据分片服务模块,将数据分布存储于不同的Redis服务器中;主从热备模块,为每一个所述的Redis服务器配置一台从服务器,Redis核心内存处理框架自动检测主从的状态并在主机宕机时切换到对应的从服务器;数据同步服务模块,维护一个写缓冲队列,缓冲队列到达一定数量后将写入所述的关系数据库;在线扩容模块,用以支持在不间断运行的状况下对所述的Redis核心内存处理框架进行扩容。...

【技术特征摘要】

【专利技术属性】
技术研发人员:苏阳
申请(专利权)人:上海普元信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1