WEB页面的数据处理方法、服务器及存储介质与流程

文档序号:30833950发布日期:2022-07-22 22:30阅读:94来源:国知局
web页面的数据处理方法、服务器及存储介质
技术领域
:1.本技术涉及web页面的数据处理
技术领域
:,特别是涉及web页面的数据处理方法、服务器及存储介质。
背景技术
::2.随着互联网技术和通信技术的发展,人们可以通过设备的浏览器实现非常多的功能,具体可以通过web页面观看喜欢的内容、玩许多喜欢玩的游戏,还能够与他们进行通信。而且,得益于web技术的发展,越来越多的用户喜欢通过web页面观看直播,既方便又快捷。3.目前,在对监控web页面所生成数据处理中,容易导致计算处理资源的浪费,减低数据处理效率。技术实现要素:4.本技术主要解决的技术问题是提供web页面的数据处理方法、服务器及存储介质,能够减少计算处理资源的浪费。5.为解决上述技术问题,本技术采用的一个技术方案是:提供一种web页面的数据处理方法,该方法包括:6.接收监控web页面的运行情况所得到的监控数据;7.实时获取监控数据中的实时处理数据进行处理,而非实时获取监控数据中的非实时处理数据进行处理;8.将处理后的实时处理数据和处理后的非实时处理数据发送给可视化设备,以使得可视化设备对处理后的实时处理数据和处理后的非实时处理数据进行可视化处理。9.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种服务器,该服务器包括:处理器、存储器和通信电路。通信电路用于与客户端设备以及可视化设备通信连接,存储器存储有计算机程序,处理器用于执行计算机程序以实现如上述的方法。10.为解决上述技术问题,本技术采用的又一个技术方案是:提供一种计算机可读的存储介质,该存储介质存储有计算机程序,计算机程序能够被处理器执行以实现如上述的方法。11.本技术的有益效果是:区别于现有技术的情况,通过实时获取监控数据中的实时处理数据进行处理,以能够尽快地获取实时处理数据进行处理,进而能够更快地对错误事件等故障进行排查以及分析,便于后台能够尽快地解决错误事件等故障,而以非实时的方式获取非实时处理数据,可以延迟去获取非实时处理数据进行处理,进而使得计算资源能够优先获取和处理实时处理数据,由于非实时处理数据对web页面的正常运行的影响相较于实时处理数据而言不是非常急切,故而非实时获取非实时处理数据进行处理能够减少计算资源的浪费,减轻处理压力。另外,将处理后的实时处理数据以及处理后的非实时处理数据给可视化终端,对处理后的实时处理数据和非实时处理数据进行整体上的可视化处理,能够提升数据的整体性,便于从整体上对web页面的运行情况进行监控和分析。附图说明12.图1是本技术监控系统实施例的系统组成示意图;13.图2是本技术监控系统实施例的系统应用过程示意图;14.图3是本技术web页面的数据处理方法实施例的流程示意图;15.图4是本技术web页面的数据处理方法实施例的流程时序示意图;16.图5是本技术服务器实施例的电路结构示意图;17.图6是本技术计算机可读存储介质的电路结构示意图。具体实施方式18.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。19.本技术发明人经过长期研究发现,为了保障web页面的正常运行,需要监控web页面的运行情况,进而可以分析web页面运行是否正常以及是否出现故障。监控web页面的运行,可以获取相应的数据,基于该些数据对web页面的运行情况进行分析。在相关技术中,在获取该些数据不加以区分即对该些数据进行处理,容易导致处理资源浪费,造成处理压力较大。为了解决上述技术问题,本技术提出以下实施例。20.如图1和图2所示,本技术监控系统实施例描述的监控系统包括服务器100、可视化设备200以及web端设备300。web端设备300和可视化设备200分别于服务器100连接。21.web端设备300可以包括移动终端、pc电脑、服务器100、笔记本电脑、平板电脑和智能可穿戴设备等中的一者或多者,移动终端比如可以是智能手机等。web端设备300可以运行web页面,比如直播平台的web页面,当然还是可以其他内容的web页面,具体可以通过浏览器运行web页面。22.为了提高web页面运行的可靠性,减少web在运行过程中出现故障的概率以及减少故障对web页面运行的影响,可以监控web页面的运行过程,例如web端设备300所运行的web页面可以嵌入一个或者多个sdk来监控web页面的运行,通过该一个或者多个sdk可以获取到web页面运行的监控数据,监控数据例如可以包括基础数据以及错误事件数据等。基础数据例如可以包括web页面打开的响应速度、web页面内各接口以及内容打开的响应速度、web页面内各组件或者最大组件的画面渲染速度、页面浏览量或点击量(pageview,pv)以及页面的访客数量(uniquevisitor,uv)等,错误事件数据可以是指运行中出现错误事件所对应获取到的数据,错误事件例如可以包括接口请求错误/告警、页面显示报错、资源加载错误以及前台等各种类型错误。错误事件数据则可以包括错误事件本身以及为排查错误事件所需要的数据,比如可以在错误事件出现时,获取错误事件出现前一段时间内的用户操作数据以及页面运行数据等便于分析和排查错误事件。23.服务器100可以用于获取web端设备300发送的监控数据,进而可以对监控数据进行处理,并将处理后的监控数据发送给可视化设备200。若web页面为直播平台的web页面,服务器100可以是直播服务器100,也可以时不同于直播服务器100的服务器100。服务器100对监控数据处理,比如可以将监控数据处理成响应时间粒度的数据,便于进行统计和分析。24.可视化设备200在接收到经过服务器100处理后的数据,可以进行可视化处理,以可以以可视化图表等呈现监控数据。25.为了提高服务器100的数据处理效率,能够更快地对错误事件等情况做出反应,减少处理资源的浪费,本实施例可以将监控数据中的实时处理数据和非实时处理进行区分处理。本技术的发明人发现,监控数据中的基础数据等延迟获取和处理对web页面整体的运行影响不大,而监控数据中的错误事件数据等意味着web页面在被访问过程中出现了错误事件,会导致web页面出现故障,而会极大地影响访客的访问体验,因此该部分内容需要较快地得出处理。在本实施例中,包括基础数据在内的对web页面的运行的影响不是非常急切的数据可以认为是非实时处理数据,即可以无需尽快或实时处理的处理。而包括错误事件数据在内的对web页面的运行的影响很急切的数据可以认为其是实时处理数据,换言之,需要得到尽快或实时处理的数据。26.如图2和图3所示,本技术web页面的数据处理方法实施例,以上述服务器100为执行主体,可以包括:s100:接收监控web页面的运行情况所得到的监控数据。s200:实时获取监控数据中的实时处理数据进行处理,而非实时获取监控数据中的非实时处理数据进行处理。s300:将处理后的实时处理数据和处理后的非实时处理数据发送给可视化设备200,以使得可视化设备200对处理后的实时处理数据和处理后的非实时处理数据进行可视化处理。27.通过实时获取监控数据中的实时处理数据进行处理,以能够尽快地获取实时处理数据进行处理,进而能够更快地对错误事件等故障进行排查以及分析,便于运维人员能够尽快地解决错误事件等故障,而以非实时的方式获取非实时处理数据,以可以延迟去获取非实时处理数据进行处理,进而使得计算资源能够优先获取和处理实时处理数据,由于非实时处理数据对web页面的正常运行的影响相较于实时处理数据而言不是非常急切,故而非实时获取非实时处理数据进行处理能够减少计算资源的浪费,减轻处理压力。另外,将处理后的实时处理数据以及处理后的非实时处理数据给可视化终端,对处理后的实时处理数据和非实时处理数据进行整体上的可视化处理,能够提升数据的整体性,便于从整体上对web页面的运行情况进行监控和分析。28.如图2至图4所示,以下对本实施例进行详细的描述:29.s100:接收监控web页面的运行情况所得到的监控数据。30.就上面所述,可以通过一个或者多个sdk监控web页面的运行情况,进而得到监控数据。服务器100可以接收web端设备300上报监控数据。监控数据可以至少包括上述描述的基础数据在内的非实时处理数据和包括错误事件数据在内的实时处理数据。监控数据仅是一种命名上的示意,实时处理数据和非实时处理数据等又监控过程而得出的数据可以统称为监控数据,web端设备300在实际工作过程中每次上报的监控数据,并不一定会同时包括实时数据和非实时数据。31.在本实施例中,可以通过一个预设sdk去获取监控数据,也即通过一个预设sdk获取实时处理数据和非实时处理数据等。具体可以参见如下步骤:32.s110:接收同一预设sdk监控web页面的运行情况所分别获得的实时处理数据和非实时处理数据。33.在web端设备300的web页面中嵌入该预设sdk,通过该预设sdk监控web页面,进而可以在web页面运行中记录基础数据等非实时处理数据,以及出现错误事件时记录的错误事件数据等实时处理数据。34.相较于通过多个sdk定向地抓取对应的数据,比如性能数据(如web页面打开的响应速度,web页面内各接口的响应速度等)对应一个sdk,比如浏览量以及访客数量等对应一个sdk,错误事件数据对应至少一个sdk,如此设置的不同的sdk定向获取数据,则会使得数据较为零散,难以从整体且直观地进行分析,而本技术通过同一预设sdk监控web页面的运行情况进而可以获取到实时处理数据和非实时处理数据,便于从整体上监控web页面的运行情况,便于数据的统一收集、处理和分析,还能够减少web页面内嵌入的sdk数量,进而实现低侵入性。35.在错误事件发生时,可以预设sdk抓取错误事件发生前web页面都经过了哪些行为,这是除了错误事件堆栈外对错误事件的分析是非常有用的。为此,可以通过预设sdk持续或每时每刻在web端设备300的内存中缓存用户的操作数据,进而在错误事件发生时可以获取到错误事件发生前一段时间(比如一分钟)内用户的所有操作数据,进而能够将错误事件和用户行为进行挂钩,结合分析。36.预设sdk执行的过程例如为:首先进行初始化,例如全局记录首次访问的时间、生成定时器全局维护一个回放列表、重写原生对象并绑定一系列事件、对错误事件的监听(例如包括js错误、资源记载错误、promise错误等)。在完成初始化后,例如可以开始缓存页面请求行为、缓存控制台日记打印信息、缓存页面点击行为及路径、缓存页面停留时长并更新到全局等等,缓存的上述内容就可以缓存在内存的回放列表中,通过定时器定时更新回放列表,在监听到错误事件后,可以将该错误事件发生前一段时间内的所缓存的数据进行上报,上报的数据可以包括实时处理数据。而基础数据,比如pv数据、uv数据以及性能数据等可以每隔一段时间就更新并上报,当然也可以实时上报。37.服务器100在接收到监控数据上报后,例如接收到sdk所上报的监控数据后,可以通过数据库表的方式存储监控数据。具体可以参见下述步骤:38.s120:接收监控数据并存储于数据库表中。39.数据库表例如可以为hive表(hivetable)。hive是基于hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供sql查询功能,能将sql语句转变成mapreduce任务来执行。hive的优点是学习成本低,可以通过类似sql语句实现快速mapreduce统计,使mapreduce变得更加简单,而不必开发专门的mapreduce应用程序。hive十分适合对数据仓库进行统计分析。40.通过以数据库表的方式存储监控数据,能够使得监控数据的存储统一且规范,而且便于读取,能够提高数据的存储和读取的效率。41.预设sdk监控web页面上报实时处理数据和非实时处理数据时,可以配以相应的标识字段(符)。比如,pv数据配以标识字段为01,uv数据配以标识字段为02,web页面打开相应速度配以标识字段为03,……,接口请求错误数据配以标识字段为07等。换言之,预设sdk上报的实时处理数据和非实时处理数据可以通过标识字段进行分辨或判断。相应地,实时处理数据和非实时处理数据存储在数据库中也可以通过标识字段进行区分,以能够在获取实时处理数据和非实时处理数据。42.当然,也可以在上报时将实时处理数据和非实时处理数据进行分开存储。例如,数据库表可以包括用于存储实时处理数据的第一子数据库表和用于存储非实时处理数据的第二子数据库表。具体可以参见如下步骤:43.121:将实时处理数据存储于第一子数据库表以及将非实时处理数据存储于第二子数据库表。44.第一子数据库表和第二子数据库表例如均可以是hive表。将实时处理数据和非实时处理数据分别上报至不同的数据库表,即第一子数据库表和第二子数据库表。例如,预设sdk在监控中获取到实时处理数据时,可以配以相应的标识字段,并根据配置的标识字段上报至第一子数据库表,同理在获取到非实时处理数据时,可以配以相应的标识字段,并根据配置的标识字段上报至第二子数据库表。通过设置不同的子数据库表分别存储实时处理数据和非实时处理数据,能够更利于对实时处理数据和非实时处理数据进行区分获取和处理,能够提升数据的获取和处理效率。45.预设sdk可以将实时处理数据和非实时处理数据按份上报,具体可以根据预设sdk内部的预设规则定义“份”,比如以时间、数据类型或者数据量等进行定义。当然,预设sdk可以不以份为单元上报数据,而是在第一子数据库表、第二数据库表、预设数据库以及缓存系统中以份进行存储,或者服务器100以份进行获取,也即“份”的规则可以是在其他环节中去定义。46.s200:实时获取监控数据中的实时处理数据进行处理,而非实时获取监控数据中的非实时处理数据进行处理。47.实时获取监控数据中的实时处理数据,也即在接收到监控数据的实时处理数据后,可以实时获取实时处理数据进行处理。而非实时获取监控数据中的非实时处理数据,也即在接收到监控数据的非实时处理数据后,可以延迟获取监控数据中的非实时处理数据进行处理。在本实施例中,实时获取实时处理数据进行处理和非实时获取非实时处理数据中的“实时获取”和“非实时获取”是相对概念,本实施例中的“实时获取”可以包括通常意义上的实时获取,以及以第一时间间隔获取。而本实施例中的“非实时获取”可以是指以第二时间间隔获取,而第一时间间隔小于第二时间间隔。也即,获取实时处理数据的时间间隔比获取非实时处理数据的时间间隔小。48.服务器100在接收到实时处理数据时,实时获取该实时处理数据进行处理。通俗地说,在接收到实时处理数据后,很快地获取并安排该实时处理数据进行处理。而在接收到非实时处理数据时,非实时获取该非实时处理数据,相当于延迟一段时间再去获取非实时处理数据进行处理。服务器100可以配置有一个或多个计算服务节点。在此,多个可以是指两个或两个以上。该一个或多个计算服务节点可以实时获取实时处理数据和非实时获取非实时处理数据进行处理。49.通过实时获取实时处理数据进行处理,而非实时获取非实时处理数据进行处理,能够给处理实时处理数据腾出更多的计算资源,避免出现拥堵而导致计算效率低下,也能够有效地节省计算资源。50.对于上述提及的在接收到监控数据后,通过数据库表存储监控数据。监控数据存储在数据库表后,可以从数据库表中获取实时处理数据以及非实时处理数据,具体参见步骤s200包括的如下步骤:51.s210:从数据库表中实时获取实时处理数据进行处理,而从数据库表中定时获取非实时处理数据进行处理。52.在web页面运行的过程中,服务器100可以持续地接收预设sdk上报的监控数据,并存储在数据库表中。将实时处理数据和非实时处理数据存储在数据库表中,便于获取对实时处理数据和非实时处理数据进行处理。数据库表为数据存储提供规范化的条件,也能够提高数据的读取效率。在实时处理数据存储到数据库表中时,服务器100可以实时地从数据库表中获取实时处理数据进行处理。在非实时处理数据存储到数据库表中,服务器100可以定时地获取非实时处理数据进行处理。在本实施例中,定时例如是指隔预设时间段。预设时间段可以有两种实施方式:53.一、预设时间段可以是指某份非实时处理数据存储于数据库表和被获取之间的时间间隔。54.例如,每份非实时处理数据某时刻存储到数据库表中,服务器100再隔预设时间段去获取到该份非实时处理数据。例如,数据库表可以设置有定时功能,每份非实时处理数据存储预设时间后定时发送出以可被进行处理。55.二、预设时间段可以是指服务器100在数据库表中每隔预设时间段获取一次该预设时间段内存储的非实时处理数据。56.服务器100能够在数据库表中获取到非实时处理数据的前提时数据库表在该预设时间段内存储有非实时处理数据,否则获取不到。换言之,整个数据库表每隔预设时间段将该预设时间段内所存储的非实时处理数据发送去安排处理。具体地,整个数据库表可以设置定时功能,每隔预设时间段将该预设时间段内存储的非定时处理数据发出进行处理。例如,服务器100每个预设时间段去查询整个数据库表,以定时获取非实时处理数据。57.服务器100定时获取非实时处理数据,例如可以具体通过如下步骤实现:58.s211:将数据库表中的非实时处理数据定时存储于预设数据库中。59.通过设置预设数据库用于至少存储非实时处理数据,数据库表中的非实时处理数据定时存储于预设数据库中,能够更加方便非实时处理数据的读取,而且可以将获取途径与实时处理数据区分开来,使得两者之间的获取不会相互干扰。预设数据库例如为mongodb。预设数据库可以是设置于服务器100内,也可以是独立于服务器100。60.s212:从预设数据库中读取非实时处理数据进行处理。61.数据库表的非实时处理数据定时存入预设数据库后,服务器100可以只需要去预设数据库去读取非实时处理数据,可以无需直接订阅数据库表,进而减少实时处理数据和非实时处理数据之间的相互干扰,而且设置预设数据库中,便于预设数据库中的中转。若web页面上报大量的非实时处理数据时,如果直接从数据库表中定时订阅获取,那么可能处理不及时而导致存储和处理压力较大,而设置预设数据库后,数据库的容量较大,作为非实时处理数据的中转,能够减少数据库表的存储压力,也能够缓解计算处理的压力,能够实现分段处理非实时处理数据,例如可以处理完一批再到一批,而无需担心预设数据库被存储满,实现更有序的存储和处理。62.基于前述步骤s121描述的第一子数据库表和第二子数据库表,具体获取实时处理数据以非实时处理数据进行处理可以参见步骤s210包括的如下步骤:63.s221:从第一子数据库表中实时获取实时处理数据进行处理。64.在预设sdk上报实时处理数据并存储在第一子数据库表,服务器100从第一子数据库表中实时获取实时处理数据进行处理。预设sdk将抓取到的实时处理数据上报到第一子数据库表时,服务器100就可以实时获取刚上报到第一子数据库表的实时处理数据,以进行处理。65.服务器100实时获取实时处理数据可以通过实时订阅的方式来实现,具体可以参见如下步骤:66.s2211:实时订阅第一子数据库表的实时处理数据,以获取实时处理数据。67.在实时订阅第一子数据库表的实时处理数据后,在第一子数据库表存入实时处理数据时,服务器100可以实时接收到相应的订阅通知/指令,进而去实时获取到第一子数据库表的实时处理数据。故而,实时订阅可以使得在第一子数据库表中的实时处理数据更新后能够被实时获知,进而去实现实时获取第一子数据库表中更新的实时处理数据。68.实时订阅的实现方式有很多,以下举例其中一个卡夫卡消息订阅系统(kafka)。69.s2212:通过卡夫卡消息订阅系统实时订阅第一子数据库表的实时处理数据,并将实时处理数据存储至缓存系统中。70.卡夫卡消息订阅系统是一个分布式的发布-订阅消息系统,能够支撑海量数据的数据传递。在离线和实时的消息处理业务系统中,卡夫卡都有广泛的应用。卡夫卡可以将消息持久化到磁盘中,并对消息创建了备份保证了数据的安全。卡夫卡在保证了较高的处理速度的同时,又能保证数据处理的低延迟和数据的零丢失。卡夫卡消息订阅系统可以配置在服务器100中,也可以配置在服务器100外。71.通过卡夫卡消息订阅系统订阅第一子数据库表,在第一子数据库表存入实时处理数据时,卡夫卡消息订阅系统可以实时订阅到该存入第一子数据库表的实时处理数据,进而将该获得的实时处理数据转存至缓存系统(redis)中。缓存系统可以是配置在服务器100中,也可以配置在服务器100外。72.s2213:从缓存系统中获取实时处理数据进行处理。73.非实时处理数据被转存至缓存系统后,服务器100可以从缓存系统中获取实时处理数据获取数据,进而可以无需直接从。74.由于预设sdk上报的实时处理数据有时候是大量的,而服务器100的进程内存是有限的,为了考虑服务器100的存储压力,本实施例通过缓存系统进行数据中转,服务器100再从缓存系统中读取出这部分实时处理数据。这样做的好处是可以提高数据处理的吞吐量,其次,不用频繁去操作数据库(即第一子数据库表),故而通过对缓存系统中转处理能够很好地改善数据量并发高时导致的存储压力和处理压力。75.当然,服务器100从缓存系统中获取到相应的实时处理数据后,可以同时删除缓存系统中已被获取实时处理数据。76.在服务器100获取实时处理数据进行处理的过程中,可能会产生数据导致堆积或者延迟,主要原因可能包括:服务器100宕机、重启,或相应的计算服务节点故障,卡夫卡消息订阅系统故障或连接失败等。77.在出现上述故障后,可能导致数据堆积在缓存系统,或者卡夫卡消息订阅系统订阅延迟,而导致无法实现实时订阅,那么在重新恢复后,会导致计算服务节点获取实时处理数据出现混乱,例如往往只获取最新的实时处理数据,而堆积的无法被实时获取到的实时处理数据就被丢弃,导致最后进行数据统计分析不完整。78.为了进一步改善上述技术问题,本实施例可以采用步骤s2213包括的下述步骤:79.s2214:从缓存系统中获取当前待处理的实时处理数据进行处理,并通过缓存系统记录当前待处理的实时处理数据所对应的时间信息,以能够在处理中断而恢复后能够根据时间信息定位至相应的实时处理数据以继续进行处理。80.服务器100在从缓存系统中获取当前待处理的实时处理数据后,并将当前待处理的实时处理数据对应的时间信息。时间信息比如时间戳,例如当前待处理的实时处理数据是预设sdk某时刻上报的,那么将该时刻记录到缓存系统中,在处理恢复后,能够根据该时刻定位到该份实时处理数据继续进行处理。又例如缓存系统是按照消息队列的方式逐份将实时处理数据发送给服务器100,那么时间信息可以是对应消息队列的时间信息。如此,在处理中断而恢复后,能够根据时间信息定位至相应的实时处理数据进行继续获取和处理,而不会产生混乱,也不会只获取到堆积数据中最新的数据。81.简而言之,通过缓存系统记录最后一次执行数据获取处理任务所对应的时刻。当中断的故障消除后,服务器100可以以记录的时刻开始恢复相应的“旧”的实时处理数据的获取和处理。82.服务器100从缓存系统中可以获取一份实时处理数据后可以给缓存系统相应的反馈,或者说获取多份实时处理数据后再给缓存系统反馈,反馈例如是通过commit指令实现,进而删除缓存系统中已被获取的数据。83.具体地,参见步骤s2213包括的如下步骤:84.s2215:按照预设消费偏移量从缓存系统中获取与预设消费偏移量对应份数的实时处理数据。85.s2216:通知缓存系统删除已被获取的与预设消费偏移量对应份数的实时处理数据。86.预设消费偏移量可以是指从缓存系统中获取(也可称之为消费)实时处理数据的份数。预设消费偏移量可以是预先设置的,比如为10份。服务器100的计算服务节点在缓存系统中获取10份实时处理数据后,再进行反馈以通知缓存系统删除已被获取的10份实时处理数据。如此,计算服务节点无需频繁地与数据库进行交互和反馈,提升处理的效率。87.另外,设置预设消费偏移量还有这样的好处:如果在获取/消费预设消费偏移量的实时处理数据的过程中,计算服务节点异常导致其中部分实时处理数据未被重新消费,那么在恢复正常后依然可以从预设消费偏移量最初的实时处理数据开始重新获取/消费。原因在于:计算服务器100节点在获取/消费完预设消费偏移量对应的全部实时处理数据后,才会反馈给缓存系统删除已被消费的实时处理数据,如此在获取/消费的过程中出现异常而无法进行消费的情况下,预设消费偏移量最初的实时处理数据也不会被删除,在恢复正常后能够被重新消费。88.比如,服务器100的计算服务器100节点需要从缓存系统中获取10份实时处理数据,而在获取了第1-3份实时处理数据后出现异常而无法继续获取,那么在恢复正常后,依然可以从第1份实时处理数据进行获取,因为第1份实时处理未被处理。89.当然,在将第一子数据库表中的实时处理数据转存至缓存系统后,也可以删除第一子数据库表中已被转存的实时处理数据。也即,通过卡夫卡消息订阅系统订阅转存实时处理数据后,可以将已被转存的相应的实时处理数据从第一子数据库表中删除,以使得第一子数据库表中尽量都是存储最新的实时处理数据。90.在本实施例中,服务器100可以是通过计算服务节点获取实时处理数据和非实时处理数据进行处理。计算服务节点也可称为计算服务。每个计算服务节点可以拥有自己单独的内存空间以及全局对象。91.在获取实时处理数据的过程中,为了避免实时处理数据被重复消费,重复消费例如是在一个计算服务节点获取了某份实时处理数据后,另一计算服务节点又重复获取了该份实时处理数据,如此就导致了同一份实时处理数据被重复消费。为了改善这一技术问题,本实施例提出了步骤s2213包括的如下步骤:92.s2217:通过多个计算服务节点利用相同的群组标识从缓存系统中获取相同的实时处理数据,以至于在一个计算服务节点获取到实时处理数据后,不允许具有相同的群组标识的其他计算服务节点获取相同的实时处理数据。93.本实施例可以通过多个计算服务器100节点去获取/消费实时处理数据,而该多个计算服务节点可以具有相同的群组标识(groupid),该多个计算服务节点从缓存系统中获取相同的实时处理数据,那么在其中一个计算服务节点获取到该实时处理数据后,那么该计算服务节点的群组标识此次已经被记录,而其他具有相同群组标识的其他计算服务器100节点无法持相同的群组标识再去获取相同的实时处理数据。94.当然,具有相同的群组标识其他计算服务节点可以再去获取下一份实时处理数据,过程可以跟上述一样,同样只有一个计算服务节点能够获取该份实时处理数据。95.通过设置多个计算服务节点获取实时处理数据能够实现高并发处理的同时,利用相同的群组标识去获取数据能够保证数据可以不被重复消费,进而减少数据的重复消费和计算,既能够减少计算资源的浪费,又能够保证统计和分析结果的可靠性。96.对于非实时处理数据,其是通过定时存储于预设数据库中,计算服务节点再从预设数据库中读取非实时处理数据进行处理。97.s222:将第二子数据库中的非实时处理数据定时存储于预设数据库中。98.在前面已经提及,第二子数据库表的非实时处理数据定时存储于预设数据库中的“定时”可以是指第二子数据库表从整体上每隔预设时间段将该时间段内接收的非实时处理存储于预设数据库中,也可以是指每份非实时处理数据在存入第二子数据库表预设时间段后转存至预设数据库中。第二子数据库表可以在非实时处理数据转存至预设数据库后删除其内已被转存的非实时处理数据。通过将第二子数据库中的非实时处理数据定时存储于预设数据库中,与上述通过卡夫卡消息订阅系统将实时处理数据转存至缓存系统不同,两者进行区分处理,能够减少数据之间的影响以及出错的概率,进而也能够保证实时处理数据能够优先得到计算资源。99.s223:从预设数据库中读取非实时处理数据进行处理。100.在非实时处理数据定时存储至预设数据库后,服务器100的计算服务节点可以从预设数据库中读取/获取非实时处理数据进行处理。计算服务节点从预设数据库中读取/获取非实时处理数据可以是分段消费,也即消费完一段再到一段,具体的实现方式可以参照步骤s223包括的如下步骤:101.s2231:查询预设数据库中是否存在非实时处理数据,且非实时处理数据是否满足预设处理条件。102.服务器100可以查询预设数据库中是否存在非实时处理数据,若存在非实时处理数据,则判断非实时处理数据是否满足预设处理条件。预设处理条件比如包括数据是否完整。比如第二子数据库表从某段时间内的非实时处理数据作为一份数据转存至预设数据库中,由于传输需要时间,因此部分数据已经传输到了预设数据库,而部分数据还没有传输到预设数据库,因此当前位于预设数据库中的非实时处理数据是不完整的。103.s2232:若预设数据库中存在非实时处理数据且满足预设处理条件,则获取相应的非实时处理数据进行处理。104.在预设数据库中存在非实时处理数据且满足预设处理条件时,服务器100则从预设数据库中获取相应的非实时处理数据,如此可以认为计算服务节点消费完了该份非实时处理数据。在消费完该份非实时处理数据后,可以删除预设数据库中被消费完的该份非实时处理数据,参见如下步骤。105.s2233:在从预设数据库获取到相应的非实时处理数据后,通知预设数据库删除已被获取的非实时处理数据。106.计算服务节点在获取到相应的非实时处理数据后,可以给预设数据库相应的反馈或指令,进而通知或指示预设数据库删除已被获取的非实时处理数据。也就是说,服务器100消费完一份非实时处理数据,那么预设数据库中就把这份非实时处理数据删除,如此一来预设数据库中存在的且符合预设处理条件的非实时处理数据时,就是未被服务器100消费过的。这样的好处在于不管服务器100或者计算服务节点是否宕机,也不管第二子数据库表中的非实时处理数据是否会延迟入库,服务器100对于非实时处理数据可以只依赖于最终转入到预设数据库的数据,进而能够动态地消费预设数据库中的数据,如此能够提高系统的容灾能力。107.对于实时处理数据和非实时处理数据,两者区分进行获取,前者时实时获取,后者时非实时处理数据,但这并不意味者服务器100一定先处理实时处理数据,而后处理非实时处理数据,两者也可以并行处理的。为了实现处理过程中的负载均衡,可以通过让空闲的计算服务节点去分担各处理任务。具体可以步骤s200包括的如下步骤:108.s230:通过多个计算服务节点以分布式锁的方式实时获取监控数据中的实时处理数据进行处理,以及非实时获取监控数据中的非实时处理数据进行处理。109.在当前的处理任务分配时,多个计算服务节点可以通过各自的锁键去抢锁,而抢到锁的计算服务节点就计算当前的处理任务。抢到锁的计算服务节点在释放锁后,在下个处理任务分配时,至少其他计算服务节点可以再次进行抢锁,而抢到锁的计算服务节点则计算该下个处理任务。如此设置也可以避免数据的重复消费,浪费计算资源,也能够实现让空闲的计算服务节点争夺处理任务,进而实现负载均衡,减少服务器100的压力。110.例如,可以将当前需要被消费的实时处理数据和非实时处理数据分成n个处理任务,将该n个处理任务下发到该多个计算服务节点,多个计算服务节点则通过分布式锁的抢锁方式争夺处理任务,进而实现负载的均衡。111.在本实施例中,获取实时处理数据和非实时处理数据进行处理并非是指获取的时间和处理的时间是同步的,而是指在获取到数据后安排数据进行处理。处理相对于获取而言也会会存在滞后的。112.实时处理数据的处理,例如是处理成相应的时间粒度的数据。具体可以参见步骤s221包括的下述步骤:113.s2218:从第一子数据库表中实时获取实时处理数据。114.例如可以通过卡夫卡消息订阅系统实时订阅第一子数据库表的实时处理数据,并将实时处理数据转存至缓存系统。关于从第一子数据库表中实时获取实时处理数据可以参见前述步骤s2211-s2213等的相关描述,再次不在赘述。115.s2219:按照第一时间粒度将实时处理数据处理成与第一时间粒度相匹配的数据。116.按照第一时间粒度处理实时处理数据,便于可视化设备200的可视化处理。第一时间粒度例如是分钟粒度,计算服务节点将实时处理数据处理成分钟粒度的数据,在可视化设备200的数据展示时以分钟作为粒度。比如,在处理时,可以合并一分钟内所有相同类型的错误事件数据,并得到该类型的错误事件在某一分钟的整体数据,如错误事件数量,影响的用户数,分布的浏览器类型等等。117.非实时处理数据的处理,例如是处理成相应的时间粒度的数据。具体可以参见步骤s223包括的下述步骤:118.s2234:从预设数据库中读取非实时处理数据。119.第二子数据库表的非实时处理数据定时转存于预设数据库后,计算服务节点从预设数据库中读取非实时处理数据。关于本步骤可以参见步骤s2231-s2232等的相关描述,在此不再赘述。120.s2235:按照第二时间粒度将非实时处理数据处理成与第二时间粒度相匹配的数据。121.同理,按照第一时间粒度处理非实时处理数据,便于可视化设备200的可视化处理。第二时间粒度可以和第一时间粒度相同,例如是分钟粒度,计算服务节点将非实时处理数据处理成分钟粒度的数据,在可视化设备200的数据展示时以分钟作为粒度。比如,在处理时,比如说一个表示一个性能指标的性能数据,某一分钟是有个性能值来对应的,可以通过将该一分钟所有数据点做一个平均求值或其他处理方式来得到的,那么不同分钟对应各自的性能值。当然,pv数据和uv数据一样可以处理成分钟粒度数据,某一分钟的页面访问数量或访客数量。122.在处理完实时处理数据和非实时处理数据后,可以将处理完的实时处理数据和非实时处理数据发送给可视化设备200。具体可以参见如下步骤:123.s300:将处理后的实时处理数据和处理后的非实时处理数据发送给可视化设备200,以使得可视化设备200对处理后的实时处理数据和处理后的非实时处理数据进行可视化处理。124.可选地,将处理后的实时处理数据和非实时处理数据可以转存至预设数据库,预设数据库作为数据中转,可以缓解数据传输的压力,能够更稳定且更有序的数据传输,减少数据遗漏或者因为故障导致数据丢失的风险。具体地,可以参照步骤s300包括的如下步骤:125.s310:将按照第一时间粒度处理后的实时处理数据和按照第二时间粒度处理后的非实时处理数据存储至预设数据库。126.将实时处理数据处理成第一时间粒度的数据后,将处理得出的数据转存至预设数据库。将非实时处理数据处理成第二时间粒度的数据后,将处理得出的数据也转存至预设数据库。预设数据库和上述转存非实时处理数据的预设数据库可以是同一个数据库。127.s320:通过预设数据库将按照第一时间粒度处理后的实时处理数据和按照第二时间粒度处理后的非实时处理数据发送给可视化设备200。128.如图2所示,例如,通过预设数据库经相应的api服务将按照第一时间粒度处理后的实时处理数据和按照第二时间粒度处理后的非实时处理数据发送给可视化设备200。通过相应的api服务可以整合处理后的实时处理数据和非实时处理数据,进而输出到可视化设备200。129.如图5所示,本技术服务器100实施例描述的服务器100是单体架构的服务器100,也可以是服务器集群。服务器100内可以配置负责进行数据计算和处理的一个或多个计算服务节点。对于单体架构的服务器100而言,一个或多个计算服务节点可以配置在该服务器100上。对于服务器100集群而言,每个构成集群的服务器可以作为一个计算服务节点。130.服务器100可以包括:处理器110、存储器120和通信电路130。通信电路130可以用于与客户端设备300以及可视化设备200通信连接。存储器120存储有计算机程序,处理器110可以用于执行计算机程序以实现如上述本技术web页面的数据处理方法实施例所描述的方法。131.处理器110用于控制电子终端100的操作,处理器110还可以称为cpu(centralprocessingunit,中央处理单元)。处理器110可能是一种集成电路芯片,具有信号的处理能力。处理器110还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器110也可以是任何常规的处理器等。132.存储器120用于存储计算机程序,可以是ram,也是可以rom,或者其他类型的存储设备。具体地,存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器120还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器120中的非暂态的计算机可读存储介质用于存储至少一条程序代码。133.在本技术所提供的几个实施例中,应该理解到,所揭露的服务器100和数据处理方法,可以通过其它的方式实现。例如,以上所描述的服务器实施例仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。134.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。135.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。136.参阅图6,上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读的存储介质400中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令/计算机程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种介质以及具有上述存储介质的电脑、手机、笔记本电脑、平板电脑、相机等电子终端。137.关于计算机可读的存储介质400中的计算机程序的执行过程的阐述可以参照上述本技术web页面的数据处理方法实施例中阐述,在此不再赘述。138.以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本技术的专利保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1