一种业务处理方法及系统技术方案

技术编号:18054015 阅读:19 留言:0更新日期:2018-05-26 10:44
本发明专利技术公开了一种业务处理方法及系统,方法包括:二进制日志文件抽取服务器获取更改数据库任务记录时形成的二进制日志文件,对所述二进制日志文件进行解析并组装成消息体发送到消息队列子系统的消息队列中;分布式任务处理服务器集群中的任一分布式任务处理服务器监听到消息队列子系统消息队列中的消息体后解析所述消息体,在验证所述消息体的有效性之后,根据消息体中数据库名称确定任务记录所在的数据库,根据消息体中任务ID确定该数据库中相应的任务记录,根据任务记录中的任务状态,判断任务是否已成功执行;如果否,则根据任务记录中的任务类型进行相应的任务处理。采用本发明专利技术能够解决现有技术任务处理服务器单点故障的问题。

【技术实现步骤摘要】
一种业务处理方法及系统
本专利技术涉及数据处理
,特别涉及一种业务处理方法及系统。
技术介绍
如今,随着互联网行业的快速发展,大数据、高并发几乎是所有系统面临的共同的挑战。现有业务处理系统中的任务处理一般都是由多台任务处理服务器构成,其中一台任务处理服务器为主服务器,其他任务处理服务器为从服务器。主任务处理服务器定时扫描数据库中的任务记录,根据任务记录的任务类型进行相应的任务处理。如果主任务处理服务器出现故障,则重新选择主任务处理服务器进行业务处理。由上述可以看出,现有技术中一个任务只能在任务处理服务器的单机、单进程中执行,会存在很多问题:一、一旦发生任务处理服务器异常宕机,将无法确保任务的正常处理。二、由于任务处理单机,在并发高、待处理任务数据量大的时候,会存在服务资源(CPU、内存等)过载,可能导致服务不可用,任务处理存在性能瓶颈,必将导致待处理任务积压,可能会严重影响生产流程。三、现有技术中只有主任务处理服务器进行任务处理,未能将所有的任务处理服务器都利用起来处理任务,造成了部分任务处理服务器资源的闲置、浪费,未能合理利用任务处理服务器资源。
技术实现思路
本专利技术的目的在于提供一种业务处理方法及系统,能够解决现有技术任务处理服务器单点故障的问题。为实现上述专利技术目的,本专利技术提供了一种业务处理方法,该方法包括:二进制日志文件抽取服务器获取更改数据库任务记录时形成的二进制日志文件,对所述二进制日志文件进行解析并组装成消息体发送到消息队列子系统的消息队列中;所述任务记录包括任务ID、任务类型、任务状态、任务执行失败次数;所述二进制日志文件记录了对数据库中任务记录的更改操作,所述组装成的消息体包括字段:数据库名称、任务ID、更改操作的具体类型;分布式任务处理服务器集群中的任一分布式任务处理服务器监听到消息队列子系统消息队列中的消息体后解析所述消息体,在验证所述消息体的有效性之后,根据消息体中数据库名称确定任务记录所在的数据库,根据消息体中任务ID确定该数据库中相应的任务记录,根据任务记录中的任务状态,判断任务是否已成功执行;如果否,则根据任务记录中的任务类型进行相应的任务处理。为实现上述专利技术目的,本专利技术还提供了一种业务处理系统,该系统包括:二进制日志文件抽取服务器,用于获取更改数据库任务记录时形成的二进制日志文件,对所述二进制日志文件进行解析并组装成消息体发送到消息队列子系统的消息队列中;所述任务记录包括任务ID、任务类型、任务状态、任务执行失败次数;所述二进制日志文件记录了对数据库中任务记录的更改操作,所述组装成的消息体包括字段:数据库名称、任务ID、更改操作的具体类型;消息队列子系统,用于为消息体提供消息队列,以使分布式任务处理服务器监听到消息队列中的消息体;分布式任务处理服务器,为分布式任务处理服务器集群中的任一服务器,用于监听到消息队列子系统消息队列中的消息体后解析所述消息体,在验证所述消息体的有效性之后,根据消息体中数据库名称确定任务记录所在的数据库,根据消息体中任务ID确定该数据库中相应的任务记录,根据任务记录中的任务状态,判断任务是否已成功执行;如果否,则根据任务记录中的任务类型进行相应的任务处理。综上所述,本专利技术提供的业务处理方法及系统,与现有技术相比,通过在整个业务处理系统中,增加二进制日志文件抽取服务器和消息队列子系统,并且采用分布式任务处理服务器,如此,当数据库任务记录有更改时,二进制日志文件抽取服务器获取数据库二进制日志文件,进行数据解析,并组装成消息体发送到消息队列子系统的消息队列中;消息队列子系统作为消息中间件,创建消息队列,以使分布式任务处理服务器监听到消息队列中的消息体;分布式任务处理服务器集群中的各个分布式任务处理服务器之间相互独立,主动监听拉取消息队列中的消息体,进行任务处理。而现有技术中,主任务处理服务器定时扫描数据库中的任务记录,根据任务记录的任务类型进行相应的任务处理。如果主任务处理服务器出现故障,则重新选择主任务处理服务器进行业务处理。因此,本专利技术的方案基于数据库二进制日志文件解析技术,及消息中间件MQ机制,通过分布式任务处理服务器主动监听拉取消息队列中的消息体,进行任务处理,与现有技术相比,本专利技术中分布式任务处理服务器集群中的各个分布式任务处理服务器没有主从之分,采取谁监听到谁消费处理的原则,所有任务处理服务器都能处理任务,从而避免了现有技术单点故障的问题。附图说明图1为本专利技术业务处理方法的流程示意图。图2为本专利技术业务处理系统的结构示意图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本专利技术所述方案作进一步地详细说明。本专利技术的方案基于数据库二进制日志文件解析技术,及消息中间件MQ机制,通过分布式任务处理服务器主动监听拉取消息队列中的消息体,进行任务处理。本专利技术数据库可以采用MySQL数据库,MySQL数据库有各种不同类型的日志文件:错误日志、二进制日志、查询日志、慢查询日志、redo日志等,根据这些日志可以查询MySQL数据库执行的操作以及状态等信息,对于MySQL数据库的管理和维护来说,这些日志文件都是不可或缺的。其中,二进制日志(binlog),记录了对MySQL数据库中任务记录的更改操作,例如:插入操作(insert)、更新操作(update)、删除操作(delete)等操作类型,每个更改操作都以一条记录的形式写入二进制日志文件中,每条记录中都包含了当前记录更新的时间戳、该记录在当前二进制日志文件中的位置(即:偏移量)以及与数据库更改操作相关的其他信息。本专利技术业务处理方法流程示意图如图1所示:步骤11、二进制日志文件抽取服务器获取更改数据库任务记录时形成的二进制日志文件,对所述二进制日志文件进行解析并组装成消息体发送到消息队列子系统的消息队列中;所述任务记录包括任务ID、任务类型、任务状态、任务执行失败次数;所述二进制日志文件记录了对数据库中任务记录的更改操作,所述组装成的消息体包括字段:数据库名称、任务ID、更改操作的具体类型。如果消息体发送异常,则二进制日志文件抽取服务器将所述消息体保存到本地数据库;定时扫描本地数据库发送异常的消息记录,并再次向消息队列子系统发送该消息体,直至消息体发送成功。步骤12、分布式任务处理服务器集群中的任一分布式任务处理服务器监听到消息队列子系统消息队列中的消息体后解析所述消息体,在验证所述消息体的有效性之后,根据消息体中数据库名称确定任务记录所在的数据库,根据消息体中任务ID确定该数据库中相应的任务记录,根据任务记录中的任务状态,判断任务是否已成功执行;如果否,则根据任务记录中的任务类型进行相应的任务处理。分布式任务处理服务器在验证消息体的有效性时,如果验证消息体无效,则向消息队列子系统报异常。如果任务处理正常结束,则更新数据库中任务记录的任务状态为执行完成,并响应消息队列子系统任务处理成功;如果任务处理异常结束,则更新数据库中任务记录的任务执行失败次数,并响应消息队列子系统任务处理异常,以使消息队列子系统保存所述消息体,定时扫描本地数据库处理异常的消息记录,并再次向分布式任务处理服务器发送该消息体,直至消息体对应的任务处理成功。至此,完成了本专利技术的业务处理方法。进一步地本文档来自技高网...
一种业务处理方法及系统

【技术保护点】
一种业务处理方法,其特征在于,该方法包括:二进制日志文件抽取服务器获取更改数据库任务记录时形成的二进制日志文件,对所述二进制日志文件进行解析并组装成消息体发送到消息队列子系统的消息队列中;所述任务记录包括任务ID、任务类型、任务状态、任务执行失败次数;所述二进制日志文件记录了对数据库中任务记录的更改操作,所述组装成的消息体包括字段:数据库名称、任务ID、更改操作的具体类型;分布式任务处理服务器集群中的任一分布式任务处理服务器监听到消息队列子系统消息队列中的消息体后解析所述消息体,在验证所述消息体的有效性之后,根据消息体中数据库名称确定任务记录所在的数据库,根据消息体中任务ID确定该数据库中相应的任务记录,根据任务记录中的任务状态,判断任务是否已成功执行;如果否,则根据任务记录中的任务类型进行相应的任务处理。

【技术特征摘要】
1.一种业务处理方法,其特征在于,该方法包括:二进制日志文件抽取服务器获取更改数据库任务记录时形成的二进制日志文件,对所述二进制日志文件进行解析并组装成消息体发送到消息队列子系统的消息队列中;所述任务记录包括任务ID、任务类型、任务状态、任务执行失败次数;所述二进制日志文件记录了对数据库中任务记录的更改操作,所述组装成的消息体包括字段:数据库名称、任务ID、更改操作的具体类型;分布式任务处理服务器集群中的任一分布式任务处理服务器监听到消息队列子系统消息队列中的消息体后解析所述消息体,在验证所述消息体的有效性之后,根据消息体中数据库名称确定任务记录所在的数据库,根据消息体中任务ID确定该数据库中相应的任务记录,根据任务记录中的任务状态,判断任务是否已成功执行;如果否,则根据任务记录中的任务类型进行相应的任务处理。2.如权利要求1所述的方法,其特征在于,该方法进一步包括:如果消息体发送异常,则二进制日志文件抽取服务器将所述消息体保存到本地数据库;定时扫描本地数据库发送异常的消息记录,并再次向消息队列子系统发送该消息体,直至消息体发送成功。3.如权利要求1所述的方法,其特征在于,分布式任务处理服务器进行相应的任务处理之后,该方法进一步包括:如果任务处理正常结束,则更新数据库中任务记录的任务状态为执行完成,并响应消息队列子系统任务处理成功;如果任务处理异常结束,则更新数据库中任务记录的任务执行失败次数,并响应消息队列子系统任务处理异常,以使消息队列子系统保存所述消息体,定时扫描本地数据库处理异常的消息记录,并再次向分布式任务处理服务器发送该消息体,直至消息体对应的任务处理成功。4.如权利要求1所述的方法,其特征在于,分布式任务处理服务器在验证消息体的有效性时,如果验证消息体无效,则向消息队列子系统报异常。5.如权利要求1所述的方法,其特征在于,当二进制日志文件抽取服务器或者消息队列子系统发生故障时,分布式任务处理服务器定时扫描数据库中的任务记录,根据任务记录的任务类型路由相应的任务处理逻辑。6.一种业务处理系统,其特征在于,该系统包括:二进制...

【专利技术属性】
技术研发人员:王英杰
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1