页面数据处理方法、装置、设备及计算机可读存储介质与流程

文档序号:18331563发布日期:2019-08-03 12:19阅读:155来源:国知局
页面数据处理方法、装置、设备及计算机可读存储介质与流程

本发明涉及金融科技(fintech)技术领域,尤其涉及页面数据处理方法、装置、设备及计算机可读存储介质。



背景技术:

随着计算机技术的发展,尤其是互联网金融科技的不断发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(finteh)转变,但由于金融、支付行业的安全性、实时性要求,也对技术提出的更高的要求。在金融领域中,手机银行、投资理财、金融资讯等客户端app在访问后台应用服务器时,一般是由客户端app向web服务器发出网络访问请求,web服务器封装好相关请求参数后向后台应用服务器请求页面展示数据,应用服务器从源数据库获得数据,并对数据进行计算、加工后返回。

上述方式的缺陷在于:整个链路在金融业务高并发请求的情况下,会导致应用服务器和源数据库压力剧增,进而出现性能瓶颈,引发客户端页面加载缓慢的问题。



技术实现要素:

本发明的主要目的在于提出一种页面数据处理方法、装置、设备及计算机可读存储介质,旨在提升客户端页面的加载速度。

为实现上述目的,本发明提供一种页面数据处理方法,所述页面数据处理方法包括如下步骤:

获取源数据库的日志文件,所述日志文件用于记录客户端对所述源数据库的操作信息;

判断所述日志文件中是否包含预设的操作事件类型;

若所述日志文件中包含预设的操作事件类型,则判断所述日志文件中预设的页面关键信息是否发生变动;

若所述日志文件中预设的页面关键信息发生变动,则根据变动的所述页面关键信息向与所述客户端对应的应用服务器发送页面数据更新请求,以使所述后台服务器更新对应的页面数据,并将更新后的页面数据上传至预设的内容分发网络进行缓存。

优选地,所述获取源数据库的日志文件的步骤包括:

当源数据库为mysql数据库时,与所述mysql数据库建立套接字socket连接,并创建日志备份线程;

根据所述socket连接和所述日志备份线程对所述mysql数据库产生的二进制日志文件进行监听,并接收所述mysql数据库传送的二进制日志文件。

优选地,所述判断所述日志文件中是否包含预设的操作事件类型的步骤包括:

判断所述日志文件中是否包含基于所述源数据库的数据插入、数据更新或数据删除事件类型;

若所述日志文件中包含基于所述源数据库的数据插入、数据更新或数据删除事件类型,则判定所述日志文件中包含预设的操作事件类型。

优选地,所述判断所述日志文件中预设的页面关键信息是否发生变动的步骤包括:

将所述日志文件发送至预设的分布式消息队列,以使所述分布式消息队列将所述日志文件转发至预设的日志解析服务;

通过所述日志解析服务对所述日志文件进行解析,以判断所述日志文件中预设的页面关键信息是否发生变动。

优选地,所述内容分发网络分为静态缓存区和动态缓存区,所述静态缓存区用于缓存预设的静态页面信息,所述动态缓存区用于缓存预设的动态页面信息,所述动态页面信息包括所述页面关键信息。

此外,为实现上述目的,本发明还提供一种页面数据处理装置,所述页面数据处理装置包括:

获取模块,用于获取源数据库的日志文件,所述日志文件用于记录客户端对所述源数据库的操作信息;

第一判断模块,用于判断所述日志文件中是否包含预设的操作事件类型;

第二判断模块,用于若所述日志文件中包含预设的操作事件类型,则判断所述日志文件中预设的页面关键信息是否发生变动;

处理模块,用于若所述日志文件中预设的页面关键信息发生变动,则根据变动的所述页面关键信息向与所述客户端对应的应用服务器发送页面数据更新请求,以使所述后台服务器更新对应的页面数据,并将更新后的页面数据上传至预设的内容分发网络进行缓存。

优选地,所述获取模块还用于:

当源数据库为mysql数据库时,与所述mysql数据库建立套接字socket连接,并创建日志备份线程;

根据所述socket连接和所述日志备份线程对所述mysql数据库产生的二进制日志文件进行监听,并接收所述mysql数据库传送的二进制日志文件。

优选地,所述第一判断模块还用于:

判断所述日志文件中是否包含基于所述源数据库的数据插入、数据更新或数据删除事件类型;

若所述日志文件中包含基于所述源数据库的数据插入、数据更新或数据删除事件类型,则判定所述日志文件中包含预设的操作事件类型。

优选地,所述第二判断模块还用于:

将所述日志文件发送至预设的分布式消息队列,以使所述分布式消息队列将所述日志文件转发至预设的日志解析服务;

通过所述日志解析服务对所述日志文件进行解析,以判断所述日志文件中预设的页面关键信息是否发生变动。

优选地,所述内容分发网络分为静态缓存区和动态缓存区,所述静态缓存区用于缓存预设的静态页面信息,所述动态缓存区用于缓存预设的动态页面信息,所述动态页面信息包括所述页面关键信息。

此外,为实现上述目的,本发明还提供一种页面数据处理设备,所述页面数据处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的页面数据处理程序,所述页面数据处理程序被所述处理器执行时实现如上所述的页面数据处理方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有页面数据处理程序,所述页面数据处理程序被处理器执行时实现如上所述的页面数据处理方法的步骤。

本发明提出的页面数据处理方法,通过获取源数据库的日志文件,当日志文件中包含预设的操作事件类型且预设的页面关键信息发生变动时,根据变动后的页面关键信息向与所述客户端对应的应用服务器发送页面数据更新请求,以使后台服务器更新对应的页面数据,并将更新后的页面数据上传至预设的内容分发网络进行缓存,保证了内容分发网络中缓存的页面数据与数据库中的记录一致,从而当客户端发送页面访问请求时,可以直接从该内容分发网络中获取到最新的页面信息,而不必再访问应用服务器和源数据库,避免了在高并发请求的情况下,应用服务器和源数据库出现性能瓶颈的问题,提升了客户端页面的加载速度。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;

图2为本发明页面数据处理方法第一实施例的流程示意图;

图3为本发明实施例中页面数据处理系统的架构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。

本发明实施例页面数据处理设备可以是pc机或服务器设备。

如图1所示,该页面数据处理设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及页面数据处理程序。

在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的页面数据处理程序,并执行以下操作:

获取源数据库的日志文件,所述日志文件用于记录客户端对所述源数据库的操作信息;

判断所述日志文件中是否包含预设的操作事件类型;

若所述日志文件中包含预设的操作事件类型,则判断所述日志文件中预设的页面关键信息是否发生变动;

若所述日志文件中预设的页面关键信息发生变动,则根据变动的所述页面关键信息向与所述客户端对应的应用服务器发送页面数据更新请求,以使所述后台服务器更新对应的页面数据,并将更新后的页面数据上传至预设的内容分发网络进行缓存。

进一步地,处理器1001可以调用存储器1005中存储的页面数据处理程序,还执行以下操作:

当源数据库为mysql数据库时,与所述mysql数据库建立套接字socket连接,并创建日志备份线程;

根据所述socket连接和所述日志备份线程对所述mysql数据库产生的二进制日志文件进行监听,并接收所述mysql数据库传送的二进制日志文件。

进一步地,处理器1001可以调用存储器1005中存储的页面数据处理程序,还执行以下操作:

判断所述日志文件中是否包含基于所述源数据库的数据插入、数据更新或数据删除事件类型;

若所述日志文件中包含基于所述源数据库的数据插入、数据更新或数据删除事件类型,则判定所述日志文件中包含预设的操作事件类型。

进一步地,处理器1001可以调用存储器1005中存储的页面数据处理程序,还执行以下操作:

将所述日志文件发送至预设的分布式消息队列,以使所述分布式消息队列将所述日志文件转发至预设的日志解析服务;

通过所述日志解析服务对所述日志文件进行解析,以判断所述日志文件中预设的页面关键信息是否发生变动。

进一步地,所述内容分发网络分为静态缓存区和动态缓存区,所述静态缓存区用于缓存预设的静态页面信息,所述动态缓存区用于缓存预设的动态页面信息,所述动态页面信息包括所述页面关键信息。

基于上述硬件结构,提出本发明页面数据处理方法实施例。

参照图2,图2为本发明页面数据处理方法第一实施例的流程示意图,所述方法包括:

步骤s10,获取源数据库的日志文件,所述日志文件用于记录客户端对所述源数据库的操作信息;

参照图3,图3为本发明实施例中页面数据处理系统的架构示意图。在本发明实施例中,页面数据处理系统包括客户端、内容分发网络(contentdeliverynetwork,简称cdn)、web服务器、应用服务器、源数据库和页面数据处理设备。其中,客户端是指与服务器相对应,为客户提供本地服务的程序,除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行,包括网页浏览器、pc客户端、即时通讯软件等;cdn是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率;web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等web客户端提供文档,也可以放置网站文件,让全世界浏览并下载;应用服务器是为web服务器提供相关服务的后台服务器,提供解析web端请求、数据加工等服务;源数据库是指能直接提供原始资料或具体数据的自足性数据库,用户不必再查阅其他信息源。

本实施例页面数据处理方法应用于页面数据处理设备,该页面数据处理设备可以是pc机或服务器,该页面数据处理设备与源数据库和应用服务器通信,其上运行有日志获取和日志解析服务。

首先,页面数据处理设备获取源数据库的日志文件。其中,源数据库可以是关系型数据库(如mysql、oracle),内存型数据库(如共享内存、redis),非关系型数据库(如mongodb),大数据类型的数据库(如hive、hbase)等,本实施例对源数据库的类型不作限定;源数据库的日志文件用于记录客户端对所述源数据库的操作信息,该操作包括但不限于数据查询、数据插入、数据更新、数据删除等。

在一实施方式中,所述获取源数据库的日志文件的步骤可以进一步包括:当源数据库为mysql数据库时,与所述mysql数据库建立套接字socket连接,并创建日志备份线程;根据所述socket连接和所述日志备份线程对所述mysql数据库产生的二进制日志文件进行监听,并接收所述mysql数据库传送的二进制日志文件。

mysql是一种开放源代码的关系型数据库管理系统,使用最常用的数据库管理语言--结构化查询语言sql(structuredquerylanguage)进行数据库管理。mysql-binlog是mysql数据库的二进制日志文件,用于记录用户对数据库操作的sql语句(除了数据查询语句)信息。在本实施例中,当源数据库为mysql数据库时,为获取mysql数据库的二进制日志文件binlog,首先需与mysql数据库建立socket(网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,socket又称“套接字”,应用程序通常通过“套接字”向网络发出请求或者应答网络请求)连接,socket连接建立后,利用socket连接发送基于mysql协议的数据包,以创建mysql主库的binlogdump线程(日志备份线程),然后,根据socket连接和日志备份线程对所述mysql数据库产生的二进制日志文件进行监听,并接收mysql数据库传送过来的二进制日志文件。由此,实现了对mysql数据库的二进制日志文件的获取。

步骤s20,判断所述日志文件中是否包含预设的操作事件类型;

该步骤中,在获取到源数据库的日志文件后,判断该日志文件中是否包含预设的操作事件类型,该预设的操作事件类型用于表示为对源数据库中的数据有修改操作的事件类型。

在一实施方式中,该步骤s20可以进一步包括:判断所述日志文件中是否包含基于所述源数据库的数据插入、数据更新或数据删除事件类型;若所述日志文件中包含基于所述源数据库的数据插入、数据更新或数据删除事件类型,则判定所述日志文件中包含预设的操作事件类型。

具体地,当日志文件中包含insertevent(数据插入事件)、updateevent(数据更新事件)或deleteevent(数据删除事件)时,可以判定该日志文件中包含预设的操作事件类型;当日志文件中只包含除预设的操作事件类型之外的其他事件类型,比如只包括数据查询事件时,则说明源数据库中的存储的数据并未发生变化,此时不作任何处理,并保持对源数据库的日志文件进行监听。

若所述日志文件中包含预设的操作事件类型,则执行步骤s30,判断所述日志文件中预设的页面关键信息是否发生变动;

若日志文件中包含预设的操作事件类型,则说明源数据库的库表记录已被修改,此时对该日志文件进行进一步解析,判断该日志文件中预设的页面关键信息是否发生变动。其中,页面关键信息可以根据实际业务情况进行灵活设置,比如,对于某商品展示页面,可以将价格、库存等信息设置为页面关键信息,对于某联系人展示页面,可以将联系人、联系电话、地址、邮箱等信息设置为页面关键信息;页面关键信息的变动包括页面关键信息的新增、更新或删除,比如库表记录中的商品价格由100元变为了80元,库存由500件变为了300件等。

若所述日志文件中预设的页面关键信息发生变动,则执行步骤s40,根据变动的所述页面关键信息向与所述客户端对应的应用服务器发送页面数据更新请求,以使所述后台服务器更新对应的页面数据,并将更新后的页面数据上传至预设的内容分发网络进行缓存。

若日志文件中预设的页面关键信息发生变动,此时需要将该变动告知应用服务器。具体地,当页面数据处理设备的日志解析服务检测到日志文件中预设的页面关键信息发生变动时,根据变动的所述页面关键信息向与客户端对应的应用服务器发送页面数据更新请求,以使该后台服务器启用跑批服务,更新对应的页面数据,并将更新后的页面数据上传至web服务器,web服务器更新页面数据的时间戳,并将更新后的页面数据上传至内容分发网络进行缓存。

需要说明的是,上述内容分发网络上预先缓存有所有库表记录,其可以接收客户端的页面访问请求并为客户端分配距离最近的节点返回资源,从而提高客户端的页面加载速度。当内容分发网络中缓存的页面数据更新之后,后续客户端发送页面访问请求时,可以直接从该内容分发网络中获取到最新的页面信息。

本实施例提出的页面数据处理方法,通过获取源数据库的日志文件,当日志文件中包含预设的操作事件类型且预设的页面关键信息发生变动时,根据变动后的页面关键信息向与所述客户端对应的应用服务器发送页面数据更新请求,以使后台服务器更新对应的页面数据,并将更新后的页面数据上传至预设的内容分发网络进行缓存,保证了内容分发网络中缓存的页面数据与数据库中的记录一致,从而当客户端发送页面访问请求时,可以直接从该内容分发网络中获取到最新的页面信息,而不必再访问应用服务器和源数据库,避免了在高并发请求的情况下,应用服务器和源数据库出现性能瓶颈的问题,提升了客户端页面的加载速度。

进一步地,基于本发明页面数据处理方法第一实施例,提出本发明页面数据处理方法第二实施例。

在本实施例中,上述步骤s30可以包括:将所述日志文件发送至预设的分布式消息队列,以使所述分布式消息队列将所述日志文件转发至预设的日志解析服务;通过所述日志解析服务对所述日志文件进行解析,以判断所述日志文件中预设的页面关键信息是否发生变动。

在本实施例中,页面数据处理设备还可以运行有分布式消息队列,该分布式消息队列可以是kafka(一种分布式发布-订阅消息系统,主要用于处理活跃的流式数据)、activemq(messagequeue,消息总线)、rabbitmq、rocketmq等,具体实施时可灵活设置。日志获取服务在获取到源数据库的日志信息后,将该日志信息发送至分布式消息队列中,分布式消息队列将该日志文件转发至日志解析服务,日志解析服务对日志文件进行解析,判断其中预设的页面关键信息是否发生变动。

上述通过分布式消息队列转发日志文件的方式,有利于处理大量的流式数据和满足页面数据更新的实时性需求。

进一步地,在本实施例中,内容分发网络可以划分为静态缓存区和动态缓存区,所述静态缓存区用于缓存预设的静态页面信息,所述动态缓存区用于缓存预设的动态页面信息,所述动态页面信息包括所述页面关键信息。

在本实施例中,静态缓存区用来缓存几乎不变的信息,即静态页面信息,如http(hypertexttransferprotocol,超文本传输协议)消息报文头、用户操作行为、文本和图片、网页其他元素等,其中,http消息报文头包括但不限于expirse、pragma、cache-control、last-modified、if-modified-since、etag、if-none-match、vary等,用户操作行为包括但不限于地址栏回车、页面链接跳转、新开窗口、前进、后退、f5刷新、ctrl+f5强制刷新等,文本和图片包括但不限于文字、gif、png、jpg、jpeg、img等,网页其它元素包括但不限于css、html、javascript、apk应用包、ipa应用包、超链接、表格、表单、导航栏、悬停按钮、java特效、activex、gz、zip、rar、tar、音视频等文件。动态缓存区用来缓存经常变动的信息,即动态页面信息,该动态页面信息包括预设的关键页面信息,比如可以包括价格、库存、销量、热度、点击量、商品描述、联系人、联系电话、地址、邮箱等。

应用服务器每次启用跑批服务更新对应的页面数据时,仅跑批动态页面信息,如此可以提高页面数据更新效率。

本发明还提供一种页面数据处理装置。所述页面数据处理装置包括:

获取模块,用于获取源数据库的日志文件,所述日志文件用于记录客户端对所述源数据库的操作信息;

第一判断模块,用于判断所述日志文件中是否包含预设的操作事件类型;

第二判断模块,用于若所述日志文件中包含预设的操作事件类型,则判断所述日志文件中预设的页面关键信息是否发生变动;

处理模块,用于若所述日志文件中预设的页面关键信息发生变动,则根据变动的所述页面关键信息向与所述客户端对应的应用服务器发送页面数据更新请求,以使所述后台服务器更新对应的页面数据,并将更新后的页面数据上传至预设的内容分发网络进行缓存。

进一步地,所述获取模块还用于:

当源数据库为mysql数据库时,与所述mysql数据库建立套接字socket连接,并创建日志备份线程;

根据所述socket连接和所述日志备份线程对所述mysql数据库产生的二进制日志文件进行监听,并接收所述mysql数据库传送的二进制日志文件。

进一步地,所述第一判断模块还用于:

判断所述日志文件中是否包含基于所述源数据库的数据插入、数据更新或数据删除事件类型;

若所述日志文件中包含基于所述源数据库的数据插入、数据更新或数据删除事件类型,则判定所述日志文件中包含预设的操作事件类型。

进一步地,所述第二判断模块还用于:

将所述日志文件发送至预设的分布式消息队列,以使所述分布式消息队列将所述日志文件转发至预设的日志解析服务;

通过所述日志解析服务对所述日志文件进行解析,以判断所述日志文件中预设的页面关键信息是否发生变动。

进一步地,所述内容分发网络分为静态缓存区和动态缓存区,所述静态缓存区用于缓存预设的静态页面信息,所述动态缓存区用于缓存预设的动态页面信息,所述动态页面信息包括所述页面关键信息。

上述各程序模块所执行的方法可参照本发明页面数据缓存方法各个实施例,此处不再赘述。

本发明还提供一种计算机可读存储介质。

本发明计算机可读存储介质上存储有页面数据处理程序,所述页面数据处理程序被处理器执行时实现如上所述的页面数据处理方法的步骤。

其中,在所述处理器上运行的页面数据处理程序被执行时所实现的方法可参照本发明页面数据处理方法各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1