欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种基于webSocket高并发的消息动态同步处理方案独创技术10748字

一种基于webSocket高并发的消息动态同步处理方案

2021-03-03 02:47:10

一种基于webSocket高并发的消息动态同步处理方案

  技术领域

  本发明公开一种处理方案,涉及信息技术领域,具体地说是一种基于webSocket高并发的消息动态同步处理方案。

  背景技术

  随着科技的进步与发展,全世界都离不开互联网,用户的要求变得更高,需求也会变的更加的丰富。尤其在浏览网页时,用户点击返回静态页面的时代已经过去,实时并且动态地显示消息才是重中之重。新出现的webSocket解决了这个问题,但是webSocket的缺点也显而易见,支持性不高,高并发的消息推送会占用较多的资源,其次客户端服务端如异常中断会导致webSocket不断尝试重连进而占用资源过高等等问题。

  发明内容

  本发明针对现有技术的问题,提供一种基于webSocket高并发的消息动态同步处理方案,优化于webSocket,使webSocket发送消息及时快速,稳定。支持百万级高并发消息互通。

  本发明提出的具体方案是:

  一种基于webSocket高并发的消息动态同步处理方案:客户端通过LVS模式分发消息经由webSocket集群通过origin_queue将接收的客户端消息发送至服务端,并通过message_queue将服务端返回的信息发送至客户端,

  同时客户端发送keep-alive心跳至服务端用于监控异常情况。

  所述的一种基于webSocket高并发的消息动态同步处理方案中客户端每隔一定时间发送keep-alive心跳至服务端,监控:

  关闭浏览器,webSocket主动关闭相互连接的情况,

  杀掉浏览器,webSocket异常关闭连接的情况,

  其他异常原因导致网络中断的情况,

  客户端超出阈值时间之后心跳无感知的情况。

  所述的一种基于webSocket高并发的消息动态同步处理方案中若客户端正常发送keep-alive心跳时间距离当前超过规定周期,判定为网络异常导致的网络中断。

  所述的一种基于webSocket高并发的消息动态同步处理方案中客户端通过LVS的DR模式分发消息。

  所述的一种基于webSocket高并发的消息动态同步处理方案中webSocket集群根据判断消息对应的session,通过message_queue将服务端返回的信息发送至客户端。

  一种基于webSocket高并发的消息动态同步处理系统,包括分发模块、webSocket集群通信模块、origin_queue消息队列模块、message_queue消息队列模块及监控模块,

  客户端通过分发模块以LVS模式分发消息经由webSocket集群通信模块通过webSocket集群利用origin_queue消息队列模块将接收的客户端消息发送至服务端,并通过message_queue消息队列模块将服务端返回的信息发送至客户端,

  同时客户端利用监控模块发送keep-alive心跳至服务端用于监控异常情况。

  一种基于webSocket高并发的消息动态同步处理装置,包括:至少一个存储器和至少一个处理器;

  所述至少一个存储器,用于存储机器可读程序;

  所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种基于webSocket高并发的消息动态同步处理方法。

  计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行所述的一种基于webSocket高并发的消息动态同步处理方法。

  本发明的有益之处是:

  本发明提供一种基于webSocket高并发的消息动态同步处理方案,通过LVS模式分发消息经由webSocket集群通过origin_queue将接收的客户端消息发送至服务端,并通过message_queue将服务端返回的信息发送至客户端,同时客户端发送keep-alive心跳至服务端用于监控异常情况,利用本发明方法既能够利用webSocket快速,稳定地发送消息,并且分别利用不同队列进行消息接收发送,降低消息丢失重复率,同时提高数据的有序性,同时进行异常情况监控,提高异常情况处理效率。

  附图说明

  图1是本发明方法应用流程示意图。

  具体实施方式

  WebSocket协议是基于TCP的一种新的网络协议。实现了浏览器与服务器全双工(full-duplex)通信--允许服务器主动发送信息给客户端。

  下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

  本发明提供一种基于webSocket高并发的消息动态同步处理方案:客户端通过LVS模式分发消息经由webSocket集群通过origin_queue将接收的客户端消息发送至服务端,并通过message_queue将服务端返回的信息发送至客户端,

  同时客户端发送keep-alive心跳至服务端用于监控异常情况。

  本发明方法中消息经由webSocket集群通过origin_queue将接收的客户端消息发送至服务端,并通过message_queue将服务端返回的信息发送至客户端,可以避免消息丢失重复率过高,并且数据的有序性也会比较高,而客户端发送keep-alive心跳至服务端,可以及时监控出现客户端异常或者是异常断网等原因。

  在本发明的一个实施例中,说明了监控的过程,客户端做keep-alive心跳,每隔10min发送一次心跳,监控异常处理,异常情况:

  关闭浏览器,webSocket主动关闭相互连接,

  杀掉浏览器,webSocket异常关闭连接,

  其他异常原因导致网络中断,server服务器异常,客户端20min之后心跳无感知,触发onclose,掉线,

  TCP重连,服务器断开时间到恢复期间,客户端到服务器端发送的第一次消息很有可能是服务器无法接收到的,建议发生异常之后,做出标记,等待TCP重连,然后发送消息。

  在上述过程中,客户端通过LVS的DR模式分发消息,LVS调度器配置以及服务器端安装nginx,配置VIP以及相对应的路由,

  而监控中keep-alive心跳的处理:浏览器被关闭时,正常处理即可。server端做出判断客户端正常上报时间距离现在超过3个周期时,则可认为中途网络异常,client已经断开,关闭session。

  上述实施例通过具体的监控的过程及应对方式,提高了异常情况的处理效率。

  在上述实施例基础上,消息经由webSocket集群时采取使用两个消息队列,分为origin_queue和message_queue进行消息的传输,其中origin_queue将接收的客户端消息发送至服务端,

  message_queue将服务端返回的信息发送至客户端,返回结果的时候,server中收到消息之后,判断每一个消息对应的是哪一个session,可遍历循环每一个session再发送消息到客户端,webSocket集群采取使用两个消息队列传输消息,不仅不会导致消息丢失重复率过高,还提高了数据的有序性。

  同时本发明还提供一种基于webSocket高并发的消息动态同步处理系统,包括分发模块、webSocket集群通信模块、origin_queue消息队列模块、message_queue消息队列模块及监控模块,

  客户端通过分发模块以LVS模式分发消息经由webSocket集群通信模块通过webSocket集群利用origin_queue消息队列模块将接收的客户端消息发送至服务端,并通过message_queue消息队列模块将服务端返回的信息发送至客户端,

  同时客户端利用监控模块发送keep-alive心跳至服务端用于监控异常情况。

  上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

  本发明还提供一种基于webSocket高并发的消息动态同步处理装置,包括:至少一个存储器和至少一个处理器;

  所述至少一个存储器,用于存储机器可读程序;

  所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种基于webSocket高并发的消息动态同步处理方法。

  本发明装置可作为客户端的服务器,且上述装置内处理器执行可读程序的过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

  本发明还提供计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行所述的一种基于webSocket高并发的消息动态同步处理方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。

  在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

  用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。

  此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

  此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

  以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

《一种基于webSocket高并发的消息动态同步处理方案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)