logo好方法网

事件推送方法、装置、计算机设备及存储介质


技术摘要:
本申请是关于一种事件推送方法、装置、计算机设备及存储介质。该方法包括:获取数据库的数据更新日志;读取所述数据更新日志中的目标记录;生成所述目标记录对应的目标事件信息;将所述目标事件信息推送至事件处理组件对应的事件队列。本方案中,事件信息不需要处理数  全部
背景技术:
在云计算场景中,一项业务的处理可能同时涉及在数据库中进行数据更新和事件 推送这两项操作。 比如,在相关技术中,云计算场景中的一个完整的业务处理逻辑由请求处理组件、 数据库以及事件处理组件协作完成。例如,请求处理组件按照接收时间的顺序依次处理数 据更新请求,对于每一条数据更新请求,请求处理组件指示数据库进行数据更新,同时,请 求处理组件生成该数据更新请求对应的事件信息,并将事件信息推送至事件队列;为了避 免出现误处理或者数据不一致的情况,请求处理组件通常在确认事件信息成功发送至事件 队列后,将数据更新结果保存至数据库(即数据更新的commit操作),并进行下一条数据更 新请求的处理。 然而,相关技术所示的方案,请求处理组件需要在成功发送事件信息后,才执行数 据更新的commit操作,导致数据更新请求处理流程的延时过高,影响业务处理的效率。
技术实现要素:
本申请实施例提供了一种事件推送方法、装置、计算机设备及存储介质,可以提高 云计算场景下的业务处理效率,该技术方案如下: 一方面,提供了一种事件推送方法,所述方法包括: 获取数据库的数据更新日志,所述数据更新日志中包含至少一条更新记录,所述 更新记录用于指示所述数据库中的一条数据的一次更新操作; 读取所述数据更新日志中的目标记录,所述目标记录是所述至少一条更新记录中 的任意一条; 生成所述目标记录对应的目标事件信息; 将所述目标事件信息推送至事件处理组件对应的事件队列,所述事件处理组件用 于执行所述事件队列中的事件信息对应的处理操作。 另一方面,提供了一种事件推送装置,所述装置包括: 日志获取模块,用于获取数据库的数据更新日志,所述数据更新日志中包含至少 一条更新记录,所述更新记录用于指示所述数据库中的一条数据的一次更新操作; 记录读取模块,用于读取所述数据更新日志中的目标记录,所述目标记录是所述 至少一条更新记录中的任意一条; 事件信息生成模块,用于生成所述目标记录对应的目标事件信息; 事件信息推送模块,用于将所述目标事件信息推送至事件处理组件对应的事件队 列,所述事件处理组件用于执行所述事件队列中的事件信息对应的处理操作。 4 CN 111581227 A 说 明 书 2/17 页 在一种可能的实现方式中,所述目标记录中包含更新前的目标数据和更新后的目 标数据,所述目标数据是所述数据库中对应所述目标记录的数据; 所述事件信息生成模块,用于将所述更新前的目标数据以及所述更新后的目标数 据,转换为指定格式的数据,得到所述目标事件信息;所述指定格式是所述时间处理组件可 解析的数据格式。 在一种可能的实现方式中,所述装置还包括: 标识获取模块,用于在所述事件信息生成模块将所述更新前的目标数据以及所述 更新后的目标数据,转换为指定格式的数据,得到所述目标事件信息之前,获取所述数据库 的标识; 第一格式查询模块,用于查询与所述数据库的标识相对应的所述指定格式。 在一种可能的实现方式中,所述装置还包括: 格式获取模块,用于在所述事件信息生成模块将所述更新前的目标数据以及所述 更新后的目标数据,转换为指定格式的数据,得到所述目标事件信息之前,获取所述目标数 据的数据格式; 第二格式查询模块,用于查询与所述目标数据的数据格式相对应的所述指定格 式。 在一种可能的实现方式中,所述装置还包括: 数据类型获取模块,用于在所述事件信息生成模块将所述更新前的目标数据以及 所述更新后的目标数据,转换为指定格式的数据,得到所述目标事件信息之前,获取所述目 标记录中各个字段的数据类型; 第三格式查询模块,用于查询与所述各个字段的数据类型分别对应的数据子格 式; 格式组合模块,用于基于所述各个字段的数据类型分别对应的数据子格式,组合 得到所述指定格式。 在一种可能的实现方式中,所述记录读取模块,用于按照所述至少一条更新记录 的生成时间从早到晚的顺序,将所述至少一条更新记录依次读取为所述目标记录。 在一种可能的实现方式中,所述事件信息推送模块,还用于响应于推送所述目标 事件信息失败,重新将所述目标事件信息推送至所述事件队列。 在一种可能的实现方式中,所述记录读取模块,还用于响应于推送所述目标事件 信息成功,从所述数据更新日志中读取新的目标记录。 在一种可能的实现方式中,所述更新记录是所述数据库响应于请求处理组件处理 数据更新请求时生成的记录;所述装置还包括: 请求处理控制模块,用于在日志获取模块获取数据库的数据更新日志之前,响应 于所述数据库成功执行任意一条所述更新记录对应的数据更新操作,控制所述请求处理组 件处理下一条数据更新请求。 在一种可能的实现方式中,所述请求处理控制模块,用于响应于所述数据库成功 执行任意一条所述目标记录对应的数据更新操作,通过所述数据库向所述请求处理组件发 送更新完成通知,所述更新完成通知用于指示所述请求处理组件处理下一条数据更新请 求。 5 CN 111581227 A 说 明 书 3/17 页 在一种可能的实现方式中,所述数据更新日志为二进制日志,所述二进制日志的 日志模式为基于行的复制模式,所述二进制日志的镜像参数指示所述二进制日志用于记录 数据的前镜像和后镜像。 另一方面,提供了一种事件推送系统,所述系统包括:请求处理组件、数据库以及 事件推送组件; 所述请求处理组件,用于在处理第一数据更新请求时,对所述数据库中的目标数 据进行一次数据更新操作; 所述数据库,用于在对所述数据更新操作执行成功后,将所述数据更新操作对应 的更新记录写入数据更新日志,并向所述请求处理组件发送更新完成通知,所述更新完成 通知用于指示所述请求处理组件处理第二数据更新请求,所述第二数据更新请求是所述第 一数据更新请求的下一条请求; 所述事件推送组件,用于按照生成时间从早到晚的顺序,读取所述数据更新日志 中的目标记录,生成所述目标记录对应的目标事件信息,并将所述目标事件信息推送至事 件处理组件对应的事件队列,所述事件处理组件用于执行所述事件队列中的事件信息对应 的处理操作。 另一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存 储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至 少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的事件推送方 法。 另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指 令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或 指令集由处理器加载并执行以实现如上所述的事件推送方法。 本申请提供的技术方案可以包括以下有益效果: 对于数据库中的任意一条数据发生更新时产生的更新记录,可以基于该更新记录 生成对应的事件信息并添加到事件队列,也就是说,事件信息不需要处理数据更新请求的 组件来执行,从而实现将数据更新请求的处理与事件信息的推送步骤解耦,避免了事件信 息推送步骤对数据更新请求的处理过程所造成的延时,从而降低了数据更新业务的处理延 时。 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不 能限制本申请。 附图说明 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施 例,并与说明书一起用于解释本申请的原理。 图1是本申请各个实施例涉及的一种业务处理系统的系统构成图; 图2是根据一示例性实施例示出的一种事件推送方法的流程图; 图3是图2所示实施例涉及的一种基于事件驱动的系统框架图; 图4是根据一示例性实施例示出的一种事件推送方法的流程图; 图5是图4所示实施例涉及的更新记录示意图; 6 CN 111581227 A 说 明 书 4/17 页 图6是图4所示实施例涉及的一种事件信息推送的框架图; 图7是根据一示例性实施例示出的事件推送装置的结构方框图; 图8是根据一示例性实施例示出的一种计算机设备的结构示意图。
下载此资料需消耗2积分,
分享到:
收藏