支持海量长连接的软负载均衡方法及系统技术方案

技术编号:14274438 阅读:100 留言:0更新日期:2016-12-23 19:09
本发明专利技术涉及互联网软件领域,提供一种支持海量长连接的软负载均衡方法及系统,该系统包括客户端、服务端身份认证系统、Erlang服务器集群。本发明专利技术提出的技术方案无需采用负载均衡器和软负载均衡服务器,因此降低了系统的硬件成本,降低了整个系统的复杂度,提升了整个系统的可靠性;而且,本发明专利技术中的长连接在Erlang集群节点间得到了均匀分布,系统可以很容易的进行横向扩展,因此可以方便的实现海量长连接。

【技术实现步骤摘要】

本专利技术属于互联网软件领域,特别涉及一种支持海量长连接的软负载均衡方法及系统
技术介绍
对于互联网应用,业务发展的越红火,那么使用业务的活跃用户就越多,而服务器承受的压力就越大。当负载压力达到单台服务器即使升级硬件也满足不了负载需求的时候,负载均衡技术就应运而生了。负载均衡技术是一种互联网业务部署常用的技术,它把多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过负载均衡技术,用户的访问压力被均分到多台服务器之上,对于任一单台服务器而言,承受的负载压力只是集合中的负载压力的1/N(N为服务器台数)。这样的话,业务的继续发展也能顺利得以支撑。常规的负载均衡技术是采用负载均衡器硬件(比如F5)或者是采用软负载均衡工具(比如Nginx、HAProxy)来实现。对于前者,必须采购负载均衡器硬件和相关的网络设备,统一部署,方案的实施成本较高。而对于后者,为了保证业务系统的高可用性,通常会部署两台及以上专门的服务器(比如Nginx服务器)来承担负载均衡的功能,这种方案虽然实施成本地前者低一些,仍然不够经济,而且性能也有瓶颈,为了提升性能就必须添加更多的负载均衡服务器节点,这意味着成本更高。
技术实现思路
【要解决的技术问题】本专利技术的目的是提供一种支持海量长连接的软负载均衡方法及系统,以至少解决以上技术问题之一。【技术方案】本专利技术是通过以下技术方案实现的。本专利技术首先涉及一种支持海量长连接的软负载均衡系统,包括客户端、服务端身份认证系统、Erlang集群。所述客户端被配置成:使用凭据向服务端身份认证系统发起认证HTTP请求;接收到令牌Token和服务器节点的公网IP地址信息后,使用令牌向公网IP地址对应的节点发起建立长连接的请求,该节点验证令牌,如果令牌合法,则节点根据双方预先约定的长连接协议与客户端建立长连接。所述服务端身份认证系统被配置成:接收到客户端发送的认证HTTP请求后,验证凭据,如果凭据合法,则生成一个令牌Token并通过HTTP请求把令牌Token发送至Erlang集群,如果凭据不合法,则返回认证失败的信息;等待Erlang集群的响应信息,当接收到Erlang的响应信息后,再响应客户端的HTTP请求,将令牌Token和长连接数最少的服务器节点的公网IP地址发送至客户端。所述Erlang集群被配置成:响应服务端身份认证系统的请求,并根据集群的负载情况将长连接数最少的服务器节点的公网IP地址返回给服务端身份认证系统。作为一种优选的实施方式,所述凭据为设备信息和/或用户信息。作为另一种优选的实施方式,所述设备信息为设备SN号、设备Mac地址、设备二维码或设备串号中的一种或多种,所述用户信息为用户账户名、账户密码、邮箱或手机号中的一种或多种。作为另一种优选的实施方式,所述Erlang集群包括实时动态表,所述实时动态表至少包括Erlang服务节点名和端口、客户端IP地址和端口、客户端识别信息、建立长连接的初始时间,所述实时动态表获得实时更新且在整个Erlang集群中被所有节点共享。作为另一种优选的实施方式,所述长连接协议为MQTT协议、XMPP协议、WebSocket协议、AMQP协议、STOMP协议、OpenWire协议、JMS协议或NMS协议。本专利技术还涉及一种支持海量长连接的软负载均衡方法,包括以下步骤:A、客户端使用凭据向服务端身份认证系统发起认证HTTP请求;B、服务端身份认证系统验证凭据,如果凭据合法,则生成一个令牌Token并通过HTTP请求把令牌Token发送至Erlang集群;如果凭据不合法,则返回认证失败的信息;C、Erlang集群响应服务端身份认证系统的请求,并根据集群的负载情况将长连接数最少的服务器节点的公网IP地址返回给服务端身份认证系统;D、服务端身份认证系统响应客户端的HTTP请求,将令牌Token和长连接数最少的服务器节点的公网IP地址发送至客户端;E、客户端接收到令牌Token和服务器节点的公网IP地址信息后,使用令牌向公网IP地址对应的节点发起建立长连接的请求,该节点验证令牌,如果令牌合法,则节点根据双方预先约定的长连接协议与客户端建立长连接。作为一种优选的实施方式,所述凭据为设备信息和/或用户信息。作为另一种优选的实施方式,所述设备信息为设备SN号、设备Mac地址、设备二维码或设备串号中的一种或多种,所述用户信息为用户账户名、账户密码、邮箱或手机号中的一种或多种。作为另一种优选的实施方式,所述Erlang集群的负载的连接情况通过Erlang集群的实时动态表获得,所述实时动态表至少包括Erlang服务节点名和端口、客户端IP地址和端口、客户端识别信息、建立长连接的初始时间,所述实时动态表实时更新且在整个Erlang集群中被所有节点共享。作为另一种优选的实施方式,所述步骤E中的长连接协议为MQTT协议、XMPP协议、WebSocket协议、AMQP协议、STOMP协议、OpenWire协议、JMS协议或NMS协议。【有益效果】本专利技术提出的技术方案具有以下有益效果:本专利技术无需采用负载均衡器和软负载均衡服务器,因此降低了系统的硬件成本,降低了整个系统的复杂度,提升了整个系统的可靠性;而且,本专利技术中的长连接在Erlang集群节点间得到了均匀分布,系统可以很容易的进行横向扩展,因此可以方便的实现海量长连接。附图说明图1为本专利技术的实施例一提供的支持海量长连接的软负载均衡系统的原理框图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将对本专利技术的具体实施方式进行清楚、完整的描述。实施例一图1为本专利技术实施例一提供的支持海量长连接的软负载均衡系统的原理框图。如图1所示,该系统包括客户端1、服务端身份认证系统2、Erlang集群3。客户端1被配置成:使用凭据向服务端身份认证系统2发起认证HTTP请求;接收到令牌Token和服务器节点的公网IP地址信息后,使用令牌向公网IP地址对应的节点发起建立长连接的请求,该节点验证令牌,如果令牌合法,则节点根据双方预先约定的长连接协议与客户端建立长连接。其中,凭据为设备信息和/或用户信息,设备信息为设备SN号、设备Mac地址、设备二维码或设备串号中的一种或多种,用户信息为用户账户名、账户密码、邮箱或手机号中的一种或多种。另外,长连接协议为MQTT协议、XMPP协议、WebSocket协议、AMQP协议、STOMP协议、OpenWire协议、JMS协议或NMS协议。另外,令牌Token是身份认证系统根据访问信息和凭据,使用算法生成的一串随机字符串数据。Erlang集群是指采用Erlang编程语言开发的支持长连接服务的服务器的集群,Erlang语言开发的应用或服务,天然就支持集群,这是Erlang语言的本质所决定的。Erlang的集群在默认情况下是全联通的,也就是当一个节点加入集群的时候,介绍人(节点)会推荐集群里面所有的节点主动来和新加入的节点建立联系。具体地,本实施例中,Erlang集群包括实时动态表,实时动态表包括Erlang服务节点名和端口、客户端IP地址和端口、客户端识别信息、建立长连接的初始时间,实时动态表实时更新且在整个Erlang集群中被所有节点共享。服务本文档来自技高网...
支持海量长连接的软负载均衡方法及系统

【技术保护点】
一种支持海量长连接的软负载均衡系统,其特征在于包括客户端、服务端身份认证系统、Erlang服务器集群,所述客户端被配置成:使用凭据向服务端身份认证系统发起认证HTTP请求;接收到令牌Token和服务器节点的公网IP地址信息后,使用令牌向公网IP地址对应的节点发起建立长连接的请求,该节点验证令牌,如果令牌合法,则节点根据双方预先约定的长连接协议与客户端建立长连接;所述服务端身份认证系统被配置成:接收到客户端发送的认证HTTP请求后,验证凭据,如果凭据合法,则生成一个令牌Token并通过HTTP请求把令牌Token发送至Erlang集群,如果凭据不合法,则返回认证失败的信息;响应客户端的HTTP请求,将令牌Token和长连接数最少的服务器节点的公网IP地址发送至客户端;所述Erlang集群被配置成:响应服务端身份认证系统的请求,并根据集群的负载情况将长连接数最少的服务器节点的公网IP地址返回给服务端身份认证系统。

【技术特征摘要】
1.一种支持海量长连接的软负载均衡系统,其特征在于包括客户端、服务端身份认证系统、Erlang服务器集群,所述客户端被配置成:使用凭据向服务端身份认证系统发起认证HTTP请求;接收到令牌Token和服务器节点的公网IP地址信息后,使用令牌向公网IP地址对应的节点发起建立长连接的请求,该节点验证令牌,如果令牌合法,则节点根据双方预先约定的长连接协议与客户端建立长连接;所述服务端身份认证系统被配置成:接收到客户端发送的认证HTTP请求后,验证凭据,如果凭据合法,则生成一个令牌Token并通过HTTP请求把令牌Token发送至Erlang集群,如果凭据不合法,则返回认证失败的信息;响应客户端的HTTP请求,将令牌Token和长连接数最少的服务器节点的公网IP地址发送至客户端;所述Erlang集群被配置成:响应服务端身份认证系统的请求,并根据集群的负载情况将长连接数最少的服务器节点的公网IP地址返回给服务端身份认证系统。2.根据权利要求1所述的支持海量长连接的软负载均衡系统,其特征在于所述凭据为设备信息和/或用户信息。3.根据权利要求2所述的支持海量长连接的软负载均衡系统,其特征在于所述设备信息为设备SN号、设备Mac地址、设备二维码或设备串号中的一种或多种,所述用户信息为用户账户名、账户密码、邮箱或手机号中的一种或多种。4.根据权利要求1所述的支持海量长连接的软负载均衡系统,其特征在于所述Erlang集群包括实时动态表,所述实时动态表至少包括Erlang服务节点名和端口、客户端IP地址和端口、客户端识别信息、建立长连接的初始时间,所述实时动态表实时更新且在整个Erlang集群中被所有节点共享。5.根据权利要求1所述的支持海量长连接的软负载均衡系统,其特征在于所述长连接协议为MQTT协议、XMPP协议、WebSocket协议、AMQP协议、STOMP协议、OpenWire协议、JMS协议...

【专利技术属性】
技术研发人员:李强王凤琴
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1