一种实现tcp长连接通信的负载智能分配系统及方法
【专利摘要】本发明提供一种实现TCP长连接通信的负载智能分配系统及方法,系统包括:负载分流服务器,用于计算出当前最适合进行TCP连接的TCP长连接通信服务器的IP地址、TCP服务端口分配给客户端;TCP通信服务器基础信息管理模块,用于设置通信服务器的基础信息和TCP长连接通信服务器及端口的允许连接数,最大偏移量信息;TCP长连接通信模块,用于根据设置的TCP长连接通信服务器的连接数信息,动态计算TCP长连接通信服务器当前负载及允许的连接数;数据存储服务器,用于存储客户端信息、业务逻辑数据、服务器基础信息、用户信息。本发明提供实现可水平扩展、TCP连接请求动态分配、服务器资源自定义设置、服务器负载实时监控的实现TCP长连接通信的负载智能分配系统及方法。
【专利说明】—种实现TCP长连接通信的负载智能分配系统及方法
【技术领域】
[0001]本发明涉及网络通信【技术领域】,具体涉及一种实现TCP长连接通信的负载智能分配系统及方法。
【背景技术】
[0002]TCP长连接模式中,连接客户端如果直接将TCP通信服务器IP地址、TCP通信端口进行硬编码、而不是由通信平台接口进行动态分配,将导致通信平台的服务器不能发挥负载均衡及水平扩展的优势,同时连接客户端数量的上升可能导致服务器直接当机或无法接受连接客户端新增加的TCP连接请求,也无法准确计算每个服务实例或硬件服务器当前活跃的在线连接线,系统资源消耗及当前负载。
【发明内容】
[0003]本发明的目的是结合HTTP、TCP/IP网络协议,提供实现可水平扩展、TCP连接请求动态分配、服务器资源自定义设置、服务器负载实时监控的实现TCP长连接通信的负载智能分配系统及方法。
[0004]本发明是通过以下技术方案来实现的:
[0005]本发明一方面提供一种实现TCP长连接通信的负载智能分配系统,包括:
[0006]负载分流服务器,用于提供基于Http协议的接口服务,该接口调用TCP长连接通信服务器的TCP连接数、负载计算的业务逻辑,计算出当前最适合进行TCP连接的TCP长连接通信服务器的IP地址、TCP服务端口分配给连接的客户端;
[0007]TCP通信服务器基础信息管理模块,用于设置TCP长连接通信服务器的基础信息和TCP长连接通信服务器及端口的允许连接数,最大偏移量信息;
[0008]TCP长连接通信模块,用于提供客户端连接的TCP长连接通信服务,根据消息协议进行相应的业务逻辑处理,根据设置的TCP长连接通信服务器的连接数信息,在客户端连接建立、断开、断线时动态计算TCP长连接通信服务器当前负载及允许的连接数;
[0009]数据存储服务器,用于存储与应用相关的客户端信息、业务逻辑数据、服务器基础信息、用户信息。
[0010]进一步地,所述负载分流服务器包括通过Http服务接口实现TCP长连接通信服务的负载均衡器,并设置有非阻塞、带优先级的事件调度模型,所述负载均衡器通过该调度模型处理所有的负载均衡任务分派、进程间通信。
[0011]进一步地,实现TCP长连接通信的负载智能分配系统还包括:
[0012]安全认证模块,用于对用户信息、客户端信息、服务接入信息进行安全认证。
[0013]智能监控模块,用于当监测到服务容器出现线程挂起或访问延迟时,及时重启该服务容器。
[0014]入侵检测模块,用于监控服务器和网络的状态并及时预警。
[0015]本发明另一方面提供一种实现TCP长连接通信的负载智能分配方法,包括:[0016]负载分流服务器接收客户端发送的TCP连接请求;
[0017]负载分流服务器提供的Http接口调用TCP长连接通信服务器的TCP连接数、负载计算的业务逻辑,计算出当前最适合进行TCP连接的TCP长连接通信服务器的IP地址、TCP服务端口分配给连接的所述客户端;
[0018]TCP长连接通信服务器在未达到设置的偏移量时,与客户端建立TCP连接并更新服务器列表中当前连接数,以供所述负载分流服务器提供的Http接口调用;
[0019]与客户端建立连接时TCP长连接通信服务器已达到连接数上限时,TCP长连接服务器反馈消息给客户端,由客户端请求负载分流服务器提供的Http服务接口进行重新分配;
[0020]TCP长连接通信服务器与客户端的连接断开、断线时,更新服务器列表中当前连接数,以供所述负载分流服务器提供的Http接口调用。
[0021]进一步地,负载分流服务器负载过大则增加负载分流服务器以分担负载并注册新服务器地址以进行新的负载分配规则;
[0022]TCP长连接通信服务器负载过大则增加TCP长连接通信服务器,并在信息设置中增加新服务器的参数,由Http服务接口根据新的服务器列表进行客户端连接资源的分配;
[0023]当数据存储服务器负载过大时则增加数据存储服务器,并修改数据存储服务器配置实现负载分流,数据散列存储。
[0024]进一步地,实现TCP长连接通信的负载智能分配方法还包括:
[0025]安全认证步骤:对用户信息、客户端信息、服务接入信息进行安全认证。
[0026]智能监控步骤:当监测到服务容器出现线程挂起或访问延迟时,及时重启该服务容器。
[0027]入侵检测步骤:监控服务器和网络的状态并及时预警。
[0028]本发明与现有技术相比具有以下优点及有益效果:
[0029]( I)通过在连接客户端与通信平台建立TCP连接之前先通过Http接口向通信平台请求TCP长连接地址和端口,由通信平台计算出当前负载量最小的服务器地址和端口并分配给TCP连接客户端,实现通信平台可水平扩展、TCP连接请求动态分配;
[0030](2)基于Http、TCP等标准网络协议,适用于任何具备网络连接的客户端实现相应的通信协议;
[0031](3)为客户端提供统一的接口服务及技术规范,且返回给客户端的信息采用标准的XML或JSON数据交换格式,客户端只需识别约定的数据格式,减少了客户端的开发工作量;
[0032](4)支持在虚拟专用网络的环境中建立连接,使客户端与服务器的网络与公网实现隔离,提高了网络的安全性;
[0033](5)对客户端进行了安全认证确保了客户端的访问权限以及信息交互安全;
[0034](6)设置有智能监控模块,用于服务器各承载接口的服务容器的稳定性和可访问性;当监测到某服务容器出现线程挂起或访问延迟时,智能监控模块及时重启该服务容器,确保接口的稳定性和可靠性;
[0035]( 7 )设置有入侵检测模块,用于监控服务器和网络的健康状态;若服务器或网络出现异常,入侵检测模块自动发送邮件或手机短信给系统运维管理人员,确保服务器或网络的异常尽快修复;
[0036](8)所述Http服务接口、TCP通信服务采用纯Java6的开发语言,具有良好的兼容性,可兼容 Linux/Windows/Unix/Solaris 等操作系统。
【专利附图】
【附图说明】
[0037]图1是本发明的实现TCP长连接通信的负载智能分配系统的结构示意图;
[0038]图2是本发明的实现TCP长连接通信的负载智能分配系统的架构示意图;
[0039]图3是本发明的实现TCP长连接通信的负载智能分配方法的流程示意图;
[0040]图4是本发明的实现TCP长连接通信的负载智能分配系统及方法的实施过程示意图。
【具体实施方式】
[0041]下面结合附图具体阐明本发明的实施方式,附图仅供参考和说明使用,不构成对本发明专利保护范围的限制。
[0042]如图1所示,在本实施例中,本发明一方面提供一种实现TCP长连接通信的负载智能分配系统,包括:
[0043]负载分流服务器,用于提供基于Http协议的接口服务,所述接口调用TCP长连接通信服务器的TCP连接数、负载计算的业务逻辑,计算出当前最适合进行TCP连接的TCP长连接通信服务器的IP地址、TCP服务端口分配给连接的客户端;
[0044]TCP通信服务器基础信息管理模块,基于Web方式为TCP长连接通信服务器提供基础信息管理模块,用于设置TCP长连接通信服务器的基础信息和TCP长连接通信服务器及端口的允许连接数,最大偏移量信息,最大偏移量为在TCP长连接通信服务器的额定连接数基础上设置一个连接数缓冲范围,从而将允许连接数确定为额定连接数减去最大偏移量的值;例如,管理员根据服务器负载设置允许连接数为2500,最大偏移量为500,与客户端建立连接时TCP长连接通信服务器已达到允许连接数上限2500时,TCP长连接服务器触发事件并反馈消息给客户端,由客户端请求负载分流服务器提供的Http服务接口进行重新分配;
[0045]TCP长连接通信模块,用于提供客户端连接的TCP长连接通信服务,根据消息协议进行相应的业务逻辑处理,根据设置的TCP长连接通信服务器的连接数信息,在客户端连接建立、断开、断线时动态计算TCP长连接通信服务器当前负载及允许的连接数;
[0046]数据存储服务器,基于MySQL、MsSQL、Oracle等关系型数据库或MongoDB等NoSQL数据库提供数据存储服务,用于存储与应用相关的客户端信息、业务逻辑数据、服务器基础信息、用户信息等。
[0047]在本发明的实施例中,实现TCP长连接通信的负载智能分配系统还包括WEB管理模块,通过Http协议进行客户端信息交互,查询、管理、监控、设置服务器、客户端相关信
肩、O
[0048]所述数据存储服务器结合Memcached分布式内存数据库通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高数据库并发、减少数据库服务器的压力;在服务器硬件方面使用磁盘RAID5及全局热备方法保存数据,确保服务数据的安全可靠及服务器磁盘阵列的稳定运行。
[0049]在本发明的实现TCP长连接通信的负载智能分配系统中,可以在虚拟专用网络的环境中建立TCP连接,使客户端与通信服务器的网络与公网实现隔离〈如:GRE或L2TP等隧道协议的APN网络〉,且每一次通讯都可以经过加密处理,使客户端与通信服务器的网络更安全可靠,也可以在3G等移动公网、Internet网络建立TCP连接实现TCP通信。
[0050]在本发明的实施例中,所述客户端与通信服务器的通信基于TCP/IP、HTTP协议。所述实现TCP长连接通信的负载智能分配系统基于TCP/IP协议、结合Http协议实现TCP服务的水平扩展及负载分发。
[0051 ] 在本发明的实施例中,所述负载分流服务器包括通过Http服务接口实现TCP长连接通信服务的负载均衡器,并设置有非阻塞、带优先级的事件调度模型,所述负载均衡器通过该调度模型处理所有的负载均衡任务分派、进程间通信,提供了 TCP通信的高可靠性的保证及消息通信稳定性的保证,解决了 TCP通信服务器的单点依赖问题,结合双机互备原理,可以实现TCP通信服务器的冗余备份。
[0052]在本发明的实施例中,实现TCP长连接通信的负载智能分配系统还包括:
[0053]安全认证模块,设置于负载分流服务器的Http接口服务器中,用于对用户信息、客户端信息、服务接入信息进行安全认证。在信息交互过程中,对信息进行加密和认证处理,确保信息在传输过程中的安 全性和完整性。
[0054]智能监控模块,用于监控各承载的Http接口的服务容器的稳定性和可访问性;当监测到服务容器出现线程挂起或访问延迟时,及时重启该服务容器并修改相应的服务接口或TCP通信套接字,确保接口的稳定性和可靠性。
[0055]入侵检测模块,用于监控服务器和网络的状态并及时预警;若服务器或网络出现异常,入侵检测模块自动发送邮件或手机短信给运维管理人员,确保服务器或网络的异常尽快修复。例如,若网络遭非法入侵或暴力破解等,反入侵软件将访问者加入黑名单列表以保障服务器及网络的安全;若硬件设备等导致的服务器、网络故障,网络运维管理人员也能第一时间知道当前出现故障的节点和原因,同时备份服务器将接管相应的服务。
[0056]考虑到本发明的实现TCP长连接通信的负载智能分配系统的并发承载、支持水平扩展、避免单点故障等基础需求,在本实施例中,采用每一个服务由多个应用程序实例或多个硬件服务器实例对外提供服务的方式,如图2所示:
[0057]TCP长连接通信服务由T1、T2、T3-.Tn等N个应用程序实例或硬件服务器实例组成,Http负载分流服务由Hl、H2、H3…Hn等N个应用程序实例或硬件服务器实例组成;图2中的标识说明如下:
[0058]Cl、C2、C3表示需与服务器建立TCP长连接的客户端;
[0059]H1、H2、H3表示提供负载分流服务的Http软件实例或硬件服务器;
[0060]Tl、T2、T3表示提供TCP连接服务的软件实例或硬件服务器;
[0061]D1、D2、D3表示提供数据信息存储、管理的关系或非关系型数据库管理系统;
[0062]这样设置的优点是:同一服务任一节点发生故障或需要重启应用时,服务依然可以正常运行;如果并发量增加,性能成为瓶颈,可以通过水平扩展来解决并发负载;Http负载分流服务动态计算各应用或服务器负载,保证系统稳定可靠的提供服务。
[0063]本发明的实现TCP长连接通信的负载智能分配系统的关键实施过程是:动态设置TCP通信平台各应用程序实例或硬件服务器最大连接数、偏移量;动态计算通讯平台各应用程序实例或硬件服务器当前活跃连接数、剩余连接数;通过Http接口动态为连接客户端分配当前负载最轻的TCP通讯服务实例。
[0064]如图3所示,本发明另一方面提供一种实现TCP长连接通信的负载智能分配方法,包括:
[0065]负载分流服务器接收客户端发送的TCP连接请求;
[0066]负载分流服务器提供的Http接口调用TCP长连接通信服务器的TCP连接数、负载计算的业务逻辑,计算出当前最适合进行TCP连接的TCP长连接通信服务器的IP地址、TCP服务端口分配给连接的所述客户端;
[0067]TCP长连接通信服务器在未达到设置的偏移量时,与客户端建立TCP连接并更新服务器列表中当前连接数,以供所述负载分流服务器提供的Http接口调用;
[0068]与客户端建立连接时TCP长连接通信服务器已达到连接数上限时,TCP长连接服务器反馈消息给客户端,由客户端请求负载分流服务器提供的Http服务接口进行重新分配;
[0069]TCP长连接通信服务器与客户端的连接断开、断线时,更新服务器列表中当前连接数,以供所述负载分流服务器提供的Http接口调用。
[0070]结合图2所示,在本发明的实施例中,负载分流服务器负载过大则增加负载分流服务器以分担负载并注册新服务器地址以进行新的负载分配规则;
[0071]TCP长连接通信服务器负载过大则增加TCP长连接通信服务器,并在信息设置中增加新服务器的参数,由Http服务接口根据新的服务器列表进行客户端连接资源的分配;
[0072]当数据存储服务器负载过大时则增加数据存储服务器,并修改数据存储服务器配置实现负载分流,数据散列存储。
[0073]在本发明的实施例中,实现TCP长连接通信的负载智能分配方法还包括:
[0074]安全认证步骤:对用户信息、客户端信息、服务接入信息进行安全认证。
[0075]智能监控步骤:当监测到服务容器出现线程挂起或访问延迟时,及时重启该服务容器并修改相应的服务接口或TCP通信套接字。
[0076]入侵检测步骤:监控服务器和网络的状态并及时预警。
[0077]如图4所示,本发明提供的实现TCP长连接通信的负载智能分配系统及方法的具体实施过程是:在系统的信息设置功能中,通过WEB方式提供设置当前已有的TCP长连接服务器列表(IP地址、在线用户列表缓存KEY值、端口、当前连接数、连接数最大阀值、偏移量)并记录在数据存储共享区域,客户端需要与TCP服务产生TCP长连接时,需要先访问Http服务接口,通过该接口为客户端分配当前最适合建立TCP长连接的服务器地址、端口,TCP长连接服务在未达到设置的偏移量时与客户端建立TCP连接并更新服务器列表中当前连接数,如果因为客户端产生的连接时差问题导致建立连接时TCP长连接服务器已达到连接上限,则由TCP长连接服务器反馈消息给客户端,由客户端请求Http服务接口进行重新分配,这样,就获得了对实现TCP长连接通信的负载智能分配系统的水平扩展的技术效果。TCP长连接通信服务器与客户端的连接断开、断线时,更新服务器列表中当前连接数,客户端请求Http服务接口进行分配时,所述负载分流服务器提供的Http接口调用更新后的服务器列表中当前连接数。[0078]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
【权利要求】
1.一种实现TCP长连接通信的负载智能分配系统,其特征在于,包括: 负载分流服务器,用于提供基于Http协议的接口服务,该接口调用TCP长连接通信服务器的TCP连接数、负载计算的业务逻辑,计算出当前最适合进行TCP连接的TCP长连接通信服务器的IP地址、TCP服务端口分配给连接的客户端; TCP通信服务器基础信息管理模块,用于设置TCP长连接通信服务器的基础信息和TCP长连接通信服务器及端口的允许连接数,最大偏移量信息; TCP长连接通信模块,用于提供客户端连接的TCP长连接通信服务,根据消息协议进行相应的业务逻辑处理,根据设置的TCP长连接通信服务器的连接数信息,在客户端连接建立、断开、断线时动态计算TCP长连接通信服务器当前负载及允许的连接数; 数据存储服务器,用于存储与应用相关的客户端信息、业务逻辑数据、服务器基础信息、用户信息。
2.根据权利要求1所述的实现TCP长连接通信的负载智能分配系统,其特征在于:所述负载分流服务器包括通过Http服务接口实现TCP长连接通信服务的负载均衡器,并设置有非阻塞、带优先级的事件调度模型,所述负载均衡器通过该调度模型处理所有的负载均衡任务分派、进程间通信。
3.根据权利要求1所述的实现TCP长连接通信的负载智能分配系统,其特征在于,还包括: 安全认证模块,用于对用户信息、客户端信息、服务接入信息进行安全认证。
4.根据权利 要求1所述的实现TCP长连接通信的负载智能分配系统,其特征在于,还包括: 智能监控模块,用于当监测到服务容器出现线程挂起或访问延迟时,及时重启该服务容器。
5.根据权利要求1所述的实现TCP长连接通信的负载智能分配系统,其特征在于,还包括: 入侵检测模块,用于监控服务器和网络的状态并及时预警。
6.一种实现TCP长连接通信的负载智能分配方法,其特征在于,包括: 负载分流服务器接收客户端发送的TCP连接请求; 负载分流服务器提供的Http接口调用TCP长连接通信服务器的TCP连接数、负载计算的业务逻辑,计算出当前最适合进行TCP连接的TCP长连接通信服务器的IP地址、TCP服务端口分配给连接的所述客户端; TCP长连接通信服务器在未达到设置的连接数偏移量时,与客户端建立TCP连接并更新服务器列表中当前连接数,以供所述负载分流服务器提供的Http接口调用; 与客户端建立连接时TCP长连接通信服务器已达到连接数上限时,TCP长连接服务器反馈消息给客户端,由客户端请求负载分流服务器提供的Http服务接口进行重新分配;TCP长连接通信服务器与客户端的连接断开、断线时,更新服务器列表中当前连接数,以供所述负载分流服务器提供的Http接口调用。
7.根据权利要求6所述的实现TCP长连接通信的负载智能分配方法,其特征在于: 负载分流服务器负载过大则增加负载分流服务器以分担负载并注册新服务器地址以进行新的负载分配规则;TCP长连接通信服务器负载过大则增加TCP长连接通信服务器,并在信息设置中增加新服务器的参数,由Http服务接口根据新的服务器列表进行客户端连接资源的分配; 当数据存储服务器负载过大时则增加数据存储服务器,并修改数据存储服务器配置实现负载分流,数据散列存储。
8.根据权利要求6所述的实现TCP长连接通信的负载智能分配方法,其特征在于,还包括: 安全认证步骤:对用户信息、客户端信息、服务接入信息进行安全认证。
9.根据权利要求6所述的实现TCP长连接通信的负载智能分配方法,其特征在于,还包 括: 智能监控步骤:当监测到服务容器出现线程挂起或访问延迟时,及时重启该服务容器。
10.根据权利要求6所述的实现TCP长连接通信的负载智能分配方法,其特征在于,还包括: 入侵检测步骤:监控服务器和网络的状态并及时预警。
【文档编号】H04L12/24GK103618738SQ201310661665
【公开日】2014年3月5日 申请日期:2013年12月9日 优先权日:2013年12月9日
【发明者】刘志坚 申请人:惠州华阳通用电子有限公司