本发明涉及通讯领域,尤其涉及一种服务器数据处理方法及系统。
背景技术:
随着移动互联网的发展,网站的访问量逐渐增多,网站应用已经难以在单台服务器上存储展示,需要多台服务器进行协作才能完成网站的各功能应用,即需要多台客户端服务器(clientserver)直接进行数据交互,并且要求发送数据的客户端服务器和接收数据的客户端服务器之间的通信状态须时刻保证正常,才能实现有效协作。如若出现诸如服务器宕机等状况,则服务器间的通信就会失效,进而导致客户端服务器难以获取所需数据,网站的功能应用也随之出现故障。
技术实现要素:
本发明的目的是提供一种服务器数据处理方法及系统,基于队列和脚本语言技术的结合使用,使服务器间的数据交互保持通畅,以此提高数据展示的稳定性。
本发明采用的技术方案如下:
一种服务器数据处理方法,包括:
第一客户端服务器发送数据至事件服务器;
事件服务器将所述数据插入至队列服务器;
队列服务器通过多个脚本队列向数据库服务器发送所述数据;
队列服务器在发送数据期间,监测所述多个脚本队列的运行状态:当至少一个脚本队列出现故障时,队列服务器重启故障的脚本队列;
数据库服务器在接收到所述数据后,存储所述数据。
优选地,还包括:
第二客户端服务器向事件服务器发送数据请求信息;
事件服务器根据所述数据请求信息,向数据库服务器发送查询请求;
数据库服务器根据所述查询请求,在已存储的数据中查询第二客户端服务器所需的数据;
事件服务器将数据库服务器的查询结果返回至第二客户端服务器。
优选地,所述监测所述多个脚本队列的运行状态包括:
队列服务器根据预设的时间,定时监测所述多个脚本队列的运行状态。
优选地,所述事件服务器将所述数据插入至队列服务器包括:
事件服务器根据所述数据的类型以及队列服务器的链表类型,将所述数据插入至队列服务器的相应的链表中。
优选地,还包括:在队列服务器向数据库服务器发送数据期间,数据库服务器将发送失败的数据退回至队列服务器的链表中。
优选地,所述数据请求信息包括:调用所需数据的条件参数。
优选地,所述事件服务器将数据库服务器的查询结果返回至第二客户端服务器包括:
事件服务器将数据库服务器查询到的数据转换为服务器数据结构后,返回至第二客户端服务器。
一种服务器数据处理系统,包括:
作为原始数据发送方的第一客户端服务器,以及事件服务器、队列服务器和数据库服务器;
所述事件服务器用于将第一客户端服务器发送的数据插入至队列服务器;
所述队列服务器用于将插入的数据通过多个脚本队列发送至数据库服务器,并在发送数据期间监测所述多个脚本队列的运行状态;
所述数据库服务器用于接收并存储队列服务器发送的数据。
优选地,还包括:作为数据接收方的第二客户端服务器;
所述事件服务器还用于将第二客户端服务器的数据请求发送至数据库服务器进行数据查询;以及将数据库服务器的查询结果返回至第二客户端服务器。
优选地,所述队列服务器为redis队列服务器。
相较于现有技术中客户端服务器之间直接进行通讯和数据交互,本发明及其优选方案在客户端服务器之间构建多个高可用的过程服务器,将作为发送方的客户端服务器所发数据经由事件服务器插入至队列服务器,并在队列服务器开启多个脚本队列用于提升数据输出至数据库服务器的效率,同时监控并及时重启故障的输出通道以减少数据逗留时间,使数据在通讯过程中实时保持更新状态,并有效存储在数据库服务器中,留待作为数据接收方的客户端服务器调用。本发明避免了现有的客户端服务器在直接通讯中发生诸如服务器宕机等导致交互失效的问题,从而确保了服务器间数据交互的稳定性,进而使网站的各应用功能实时处于正常状态。
附图说明
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步描述,其中:
图1为本发明提供的服务器数据处理方法的实施例的流程图;
图2为本发明提供的服务器数据处理系统的较佳实施例的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明提供了一种服务器数据处理方法的实施例,如图1所示,其过程如下:
步骤s101、第一客户端服务器发送数据至事件服务器(eventserver);
具体在实际操作中,可以是指第一客户端服务器不直接向其他客户端服务器推送数据,而是先将数据发送至事件服务器。这里需指出,第一客户端服务器发送数据可以不依赖任何服务器的请求,只要数据发生变动即向事件服务器推送相应数据。
步骤s102、事件服务器将数据插入至队列服务器(queueserver);
具体在实际操作中,可以是事件服务器接收到第一客户端服务器所发数据后,根据该数据的类型以及队列服务器的链表类型,将数据插入至队列服务器的相应的链表中。
步骤s103、队列服务器开启多个用于向数据库服务器(databaseserver)发送数据的脚本队列;
该过程是为了防止队列中的数据持续逗留造成队列积压,开启多通道将前述数据向数据库服务器传输,即通过确保数据的实时更新以获得服务器的高可用性,从而可以有效避免现有技术中出现的通讯服务器因为宕机等故障,无法进行有效交互的问题,进而本实施例足以保证网站各应用及功能的正常使用或显示等。
步骤s104、队列服务器在发送数据期间,监测多个脚本队列的运行状态:当至少一个脚本队列出现故障时,队列服务器重启故障的脚本队列;
在前述步骤的基础上,本发明提出了对多个脚本队列进行管控的思路,具体在实际操作中,可以是队列服务器根据预设的时间,定时监测多个脚本队列的运行状态,例如按1分钟周期进行检测,当检测到多个脚本队列中至少一个脚本队列发生故障,也即是当多个脚本队列处于非同时正常运行的状态时,队列服务器则会自动重启该故障脚本队列,以此保证队列的高可用性,进而使所发送的数据能够准确无误地存储到数据库服务器中。
步骤s105、数据库服务器在接收到数据后,存储数据;
最后通过数据库服务器进行数据的落地,由此妥善地保证了交互数据的完整性和可靠性,以此满足作为接收方的客户端服务器对数据的查询或调用。当然,本发明还进一步考虑到,在队列服务器向数据库服务器发送数据期间可能发生数据传送失败,此时数据库服务器还可以将发送失败的数据退回至队列服务器的链表中,以防止数据的丢失;更优选地,是将发送失败的数据退回至队列服务器中与数据所对应的链表中。
本发明在上述实施例基础上,还提供了服务器数据处理方法的另一个实施例,其中还包括了如下过程:
步骤s201、第二客户端服务器向事件服务器发送数据请求信息;
具体在实际操作中,可以是作为数据需求方(也即是接收方)的第二客户端服务器向事件服务器发送调用数据的条件参数,这里所述条件参数是指第二客户端服务器根据实际需求所指明的数据类型、数据序列、交互时序等条件;
步骤s202、事件服务器根据所述数据请求信息,向数据库服务器发送查询请求;具体可以是,事件服务器根据前述条件参数,向数据库服务器发送查询请求。
步骤s203、数据库服务器根据所述查询请求,在已存储的数据中查询第二客户端服务器所需的数据;
步骤s204、事件服务器将数据库服务器的查询结果返回至第二客户端服务器;
在实际操作中,第二客户端服务器请求更新数据的动作可以是根据需求随时发生的,因此,最终返回的结果有两种,其一是数据库服务器内并未存储其所需数据,那么第二客户端服务器则可以仍采用原数据进行处理;其二是数据库服务器内存储有其所需数据,此时该步骤可以为事件服务器将数据库服务器查询到的所需数据进行加工处理后,返回至第二客户端服务器,具体地,通常服务器之间使用json格式进行通信,一种轻量级的数据交换格式,其采用完全独立于编程语言的文本格式来存储和表示数据,因而可以是事件服务器将所需数据进行转换后,以json数据结构返回至第二客户端服务器。
相应于上述处理方法实施例及其优选方案,本发明还提供了一种服务器数据处理系统的实施例,本系统包括了:作为原始数据发送方的第一客户端服务器,以及事件服务器、队列服务器和数据库服务器。此三种服务器各司其职:事件服务器的作用是将第一客户端服务器发送的数据插入至队列服务器;队列服务器的作用是将插入的数据通过多个脚本队列发送至数据库服务器,并在发送数据期间监测多个脚本队列的运行状态;而数据库服务器的作用是接收并存储队列服务器发送的数据。
进一步地,本发明还提供了本系统的一个较佳实施例,如图2所示的数据传输示意图,其中还包括作为数据接收方的第二客户端服务器,并且,事件服务器还用于将第二客户端服务器的数据请求发送至数据库服务器进行数据查询,以及将数据库服务器的查询结果返回至第二客户端服务器。其与第一、第二客户端服务器的具体配合和交互方法已在前述实施例及其优选方案中说明,此处不再赘述。
但需要说明的是,在实际操作中组建本系统时,可以优选考虑以redis队列作为队列服务器,而数据库服务器可以采用常用的诸如mysql服务器,并通过php语言作为本系统的开发支持,从而使系统开发成本降低的同时,可以实现数据的快速响应,并减少系统压力。当然,对于队列服务器、数据库服务器、开发语言的支持可以结合实际情况进行调整和变更,对此本发明不予限定。
此外,由于本发明提供了服务器的高可用性,因此还可以结合服务器的实际带载及兼容性能,进一步考虑同时在前述服务器集合接入多台用于发送数据以及接收数据的客户端服务器,亦即是不限于图中所示的一台第一客户端服务器及一台第二客户端服务器,本发明可以拓展为多台客户端服务器提供数据交互支持,从而也能够有效降低运维成本。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,但以上仅为本发明的较佳实施例,需要言明的是,上述实施例及其优选方式所涉及的技术特征,本领域技术人员可以在不脱离、不改变本发明的设计思路以及技术效果的前提下,合理地组合搭配成多种等效方案;因此,本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。