一种分布式无上限的网络聊天室消息转发系统的制作方法

文档序号:14717850发布日期:2018-06-16 01:58阅读:272来源:国知局
一种分布式无上限的网络聊天室消息转发系统的制作方法

本发明属于互联网技术领域,具体涉及一种分布式无上限的网络聊天室消息转发系统。



背景技术:

随着目前发展迅猛的直播秀场的发展,网络聊天室作为一种常见的网络沟通工具为多人进行实时交谈、聊天提供重要的信息交流服务。每个直播平台会有多个聊天房间,网络用户经过注册后,可以选择进入其中一个聊天房间,然后在聊天房间里面与主播和其他用户进行互动交流。

目前网络聊天室的实现过程是通过服务器将客户端的信息转发到聊天房间的其他客户端。对每个房间的数据处理都是由服务器完成的,并且是为每一个房间配置一个服务进程。这也就意味着服务器上的房间越多,服务进程数也就越多,同样的线程数也就越多,由于服务线程的数量众多,操作系统就需要不停的进行调度以保证每个服务线程都能得到时间使用处理器(CPU)资源来执行代码,所以线程数量越多,操作系统在线程调度上的开销也就越大,也会需要更多的线程调度的开销,这样无疑是系统资源的巨大浪费。同时由于一个房间进程只能在一台服务器上,所以每个房间接受客户端的能力,就受限于单台服务器的性能,不能无限扩展房间中的人数。聊天服务进程出现异常也会导致该房间的所有用户都无法正常聊天。



技术实现要素:

鉴于上述,本发明提供了一种分布式无上限的网络聊天室消息转发系统,能够最大限度减少服务器的开销,同时每个房间最大人数不受单台服务器的性能限制。

一种分布式无上限的网络聊天室消息转发系统,包括客户端、负载均衡中间件、连接层子系统、业务层子系统以及用户数据维护子系统,其中:

所述客户端通过负载均衡中间件向连接层子系统发起连接请求,所述负载均衡中间件用于均衡连接层子系统的客户端连接压力,使资源利用最优化;

所述连接层子系统负责接受客户端的连接请求,并把客户端的连接请求信息转发给后端的业务层子系统,同时将业务层子系统返回的消息逻辑转发给对应的客户端;

所述业务层子系统负责具体的聊天业务处理,其接收连接层子系统转发的消息并进行具体业务规则处理,且功能完全独立;

所述用户数据维护子系统用于接收来自业务层子系统的用户数据,并对数据进行智能分析及储存,及时统计当前在线情况并提供包括当前用户在线总数、注册用户在线总数、游客在线总数以及各房间用户在线情况在内的详细数据,为运营提供数据支持。

进一步地,所述连接层子系统包括:

连接处理模块,用于兼容处理不同客户端的网络协议,建立起与客户端之间有效的网络连接,实现业务数据稳定的收发;

业务数据交互模块,通过结合连接池以及连接心跳检测的方式与业务层子系统进行数据交互,以实现连接资源利用率最优化目标;

转发逻辑模块,用于存储用户的关键信息,并对客户端与业务层子系统之间的业务信息进行逻辑转发。

进一步地,所述业务层子系统包括:

业务数据交互模块,用于接收连接层子系统的业务消息,同时将已处理好的业务消息群发至连接层子系统,并维护连接层子系统的连接有效性;

数据校验模块,用于过滤非法以及无效的业务数据;

业务逻辑处理模块,根据具体业务规则对过滤后的数据进行处理,以保证房间数据准确性,进而对处理后的数据进行再封装并交由业务数据交互模块。

进一步地,消息转发逻辑从业务层子系统下放至连接层子系统,所述连接层子系统可通过集群扩展,达到用户连接无上限目标。

进一步地,所述业务层子系统可通过集群扩展,达到业务处理能力无上限目标。

相较于现有技术,本发明系统具有以下五点优势:

(1)消息转发逻辑下放至连接层,实现单房间人数无上限连接。

(2)支持高并发消息转发和客户端无上限连接请求,同时在网络良好的情况下,消息转发的延迟控制在毫秒级别。

(3)高扩展性;单房间的连接人数没有上限,本发明中的连接服务和业务服务都可以多机分布式部署,可以根据具体的业务需求,动态增加或减少连接服务和业务服务的进程数。

(4)资源利用率高;相比在一台服务器上运行多个聊天服务程序(每个房间都是一个聊天服务进程),本发明一台服务器上只需要运行一个连接服务进程。

(5)高稳定性;一个业务服务器出现异常或崩溃不影响服务的正常运行,连接服务会根据负载均衡,动态无缝的将消息重新转发到可用的业务服务器上,保证服务的稳定运行。

附图说明

图1为本发明消息转发系统的结构示意图。

图2为基于直播秀网络聊天室应用的分布式消息转发系统结构框图。

图3为本发明消息转发系统中网络连接子系统的处理流程示意图。

图4为本发明消息转发系统中业务处理子系统的处理流程示意图。

具体实施方式

为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。

如图1所示,本发明聊天消息转发系统包括客户端(PC网页端、PC客户端、手机网页端、手机APP不仅限于IOS,Android)、负载均衡层、连接层子系统、业务层子系统以及用户数据维护子系统,其中:

负载均衡层用于均衡各连接层子系统的客户端连接压力,使资源利用最优化;连接层子系统主要负责接受客户端的连接请求,并把客户端的连接请求信息转发给后端的业务层子系统,本发明系统把消息转发逻辑业务由业务层下放到连接层,连接服务接受从业务服务返回的消息转发给连接层的目标客户端,从而达到单房间用户连接无上限的核心目标。

连接层子系统中的连接处理模块兼容处理多样客户端的网络协议,建立起有效网络连接,实现业务数据稳定的收发;连接层子系统中的转发逻辑模块存储用户关键信息,进行消息逻辑转发,由于本发明将与用户进行交互的转发逻辑业务由业务层下放至网络连接层子系统,故单房间用户连接数不局限于业务层子系统,通过连接层子系统的集群扩展,达到用户连接无上限目标;连接层子系统中的业务数据交互模块通过连接池方式结合连接心跳检测方法与后端业务层进行数据交互,达到连接资源利用率最优化目标。

业务层子系统主要负责具体的聊天业务处理,其接收连接层子系统转发的消息,进行具体业务规则处理,功能完全独立,可通过集群扩展,达到业务处理能力无上限目标。业务层子系统中的业务数据交互模块主要负责接收连接层子系统的业务消息,群发已处理好的业务消息到连接层子系统,并且维护连接层子系统连接有效性;业务层子系统中的数据校验模块用于过滤非法、无效的业务数据,减轻核心业务处理层的压力,提高业务处理效率;业务层子系统中的业务逻辑处理模块根据具体业务规则保证房间数据准确性,并进行数据再封装。

用户数据维护子系统主要接收来自聊天业务层子系统的用户数据,对数据进行智能分析储存,及时统计当前在线情况及提供具体房间在线用户等详细数据,为运营提供数据支持。

以下具体实施方式基于目前发展迅猛的直播秀场业务,提供大量的用户需要互动平台,造成单房间超负荷承载,不能及时收发消息,严重影响用户体验的问题,提供了一种分布式消息转发处理系统,其包括至少一个负载均衡服务、至少一个网络连接层系统、至少一个聊天业务层系统、至少一个用户数据维护服务。图2中仅示意性示出了一个负载均衡层10、一个网络连接子系统20、一个业务处理子系统30和一个用户数据维护服务子系统40,除负载均衡层10外其他各层服务子系统均可根据实际业务量集群扩展。

在本实施方式分布式消息转发系统中,网络连接子系统20和业务处理子系统30可设置在一台服务器上,也可以设置在不同的服务器上,但是为了最大程度的利用资源,减少环境复杂度,建议设置在不同的服务器上。

负载均衡层10会定时收集到网络连接子系统20资源使用现状,进行综合分析,得出各服务的资源使用现状,当新用户连接过来时,根据网络连接子系统20的资源现状,进行最优转接。当用户量上升,需要新增网络连接子系统20来支持更大的业务量时,负载均衡层10进行自动识别,达到连接资源最优使用目的。当其中一个网络连接子系统20不可使用时,负载均衡层10能第一时间识别,将现存用户自动转接,达到用户体验最优化。

如图3所示,网络连接子系统20主要工作流程及核心功能具体如下:

(1)实现连接处理C1,启动网络连接子系统20的第一个协程,监听指定的IP地址和端口号。

(2)启动网络连接子系统20的第二个协程,定时的获取聊天业务处理子系统30地址集合。

(3)启动网络连接子系统20的第三个协程,跟据第二步获得的结果,结果显示聊天业务处理子系统30有新增,则跟聊天业务处理子系统30建立连接池,进行业务数据的转发,如果有删减,则断开连接,资源效率做到实时最优化。

(4)启动网络连接子系统20的第四个协程,实时收集聊天业务处理子系统30的资源使用现状和网络响应情况,进行智能算法分析,将实时分析数据同步到内存中。

(5)连接处理C1核心功能,启动网络连接子系统20接收协程池,实时接收来自网页、移动手机端、PC客户端用户的连接,接收用户数据,进行初步分析,对非法用户数据连接过滤,当接收到合法用户连接时,进行转发逻辑数据存储C2,存储基本用户数据信息,根据步骤(4)的计算结果,选择最合理聊天业务处理子系统30服务,进行业务数据交互C3,转发到聊天业务处理子系统30。

(6)业务数据交互C3,实时接收聊天业务处理子系统30回发的消息,根据步骤(5)存储的信息,进行转发逻辑处理C4,实现转发逻辑,这是本系统的核心所在,将转发逻辑放在连接系统实现,有效避免客户端连接数跟业务系统挂钩,达到了单房间用户连接无上限的目标。

(7)启动网络连接子系统20保护协程,根据智能算法,学习IP库,对连接的IP及网络信息进行综合智能分析,阻止非法连接,保证服务稳定性和提供资源使用效率;根据智能算法,对连接的请求频率和数据流量进行综合智能分析,对非法流量进行过滤,提高带宽有效使用率,保证服务稳定。

如图4所示,业务处理子系统30主要工作流程及核心功能具体如下:

(1)启动聊天业务处理子系统30的第一个协程,监听指定的IP地址和端口号,接收网络连接子系统20的连接。

(2)启动聊天业务处理子系统30的第二个协程,定时向终端注册聊天业务处理子系统30的信息,供网络连接子系统20使用。

(3)业务数据交互B1,启动聊天业务处理子系统30发送协程池,等待处理完毕的业务数据,实时推送给各个网络连接子系统20。

(4)业务数据交互B1,启动聊天业务子系统30接收协程池,实时接收来自网络连接子系统20的业务数据;数据合法性校验B2,根据智能业务算法,对数据进行合法性检验,将非法数据剔除,并通知网络连接子系统20将非法用户踢下线;对于通过的合法数据,进行业务逻辑处理B3,根据规则自动生成房间,根据定制化的业务规则进行处理;分发逻辑实现B4,将处理完毕的数据推送到步骤(3)中的发送连接池。

(5)实时接收终端业务消息,智能生成规则,对用户的不当行为或不当言论进行过滤或权限限制处理,保证网络环境的绿色健康。

(6)实时将用户相关数据记录,同步到用户数据维护子系统40,供第三方服务使用。

(7)实时检测网络连接子系统20和用户数据维护服务子系统40的状况,当意外情况导致服务不可用时,及时做出正确的处理,避免用户数据的错乱和权限数据的丢失,保证服务高可用。

用户数据维护服务子系统40主要接收来自聊天业务处理子系统30的用户数据,对数据进行智能分析储存,实时分析当前用户在线总数、注册用户在线总数、游客在线总数、各直播间用户在线情况,能根据需求及时统计当前在线情况及提供具体房间在线用户的详细数据。其次,用户数据维护服务子系统40能提供用户发言记录历史查询,支持精确匹配查找和指定时段模糊查找,供实际业务需求使用。最后用户数据维护服务子系统40可智能记忆各直播间用户历史在线情况和平台历史在线情况,自动生成用户数据量发展趋势图,智能分析各主播的历史成长趋势,智能分析出有培养价值的主播信息排行表供实际运营使用。

上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

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