System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() TCP长连接动态反向代理和负载均衡的实现方法与应用技术_技高网

TCP长连接动态反向代理和负载均衡的实现方法与应用技术

技术编号:40362831 阅读:6 留言:0更新日期:2024-02-09 14:50
本发明专利技术公开了一种TCP长连接动态反向代理与负载均衡的实现方法与应用,所述实现方法包括:(1)TCP长连接建立;(2)TCP消息流程;(3)动态调整连接;(4)主动指定连接。所述实现方法应用于Nginx、HAProxy和Traefik等应用工具。本发明专利技术实现了实现动态反向代理与负载均衡,能够更合理的分配TCP长连接;进一步减少了Netty服务的动态调整压力,同时能满足由业务服务进行动态分配的需求。

【技术实现步骤摘要】

本专利技术属于物联网,具体涉及了一种tcp长连接动态反向代理和负载均衡的实现方法与应用。


技术介绍

1、随着物联网技术不断的被广泛应用于各个行业,设备与物联网平台的通信一直是备受关注的重点。而处于各种局域网内的设备虽然能访问处于公网的物联网平台,但是物联网平台却无法主动访问设备,因此长连接是一个必然的选择。其中tcp长连接的使用场景仍然占据较大的比重,未来越来越多的设备需要接入物联网平台并保持通信,因此如何更加合理的分配设备的tcp长连接到指定的平台服务器愈加值得我们思考。

2、在网络通信的理论模型中,通常使用osi七层模型来解释不同网络设备和协议如何协同工作。osi七层模型包括:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中tcp/ip四层模型简化了osi七层模型,并在实践中更为常用,tcp/ip四层模型包括:网络接口层、互联网层、传输层和应用层,tcp/ip模型的应用层合并了osi模型的会话层、表示层和应用层。tcp主要工作在传输层,负责端到端的可靠传输。其无法从应用层判断信息,因为tcp关心的是数据的可靠传递,而不关注数据的具体含义。应用层的数据在传输层看来都是透明的,tcp并不理解应用层的协议语义,这也是分层的设计原则之一,即每一层只应关注其提供服务的方式,而不需要理解服务的具体实现。

3、tcp:传输控制协议(tcp,transmission control protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由ietf的rfc 793定义。

4、netty:一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络io程序。

5、springboot:一种快速开发restful web服务和构建微服务的开源框架,它可以使开发者轻松地将spring应用程序部署到云环境中。


技术实现思路

1、本专利技术的目的在于提出一种tcp长连接动态反向代理和负载均衡的实现方法与应用。

2、为了实现上述目的,本专利技术采用的技术方案如下:

3、一种tcp长连接动态反向代理与负载均衡的实现方法,包括:

4、(1)tcp长连接建立;

5、客户端配置连接至netty服务,进入netty服务后为客户端连接绑定一个反向连接,对于新连接因无法识别身份,采用常规的负载均衡算法转发反向连接至任意一台服务器;

6、(2)tcp消息流程;

7、客户端发送的消息到达netty服务后,netty服务不对源消息做任何处理直接发送至反向连接到达业务服务;业务服务根据首次消息验证连接身份并在缓存身份参数,对消息做业务处理后回写响应消息到反向连接;netty服务接收到反向连接的响应消息后同样不做任何处理直接回写至客户端连接,客户端收到响应消息后流程结束;

8、(3)动态调整连接;

9、netty服务内置一个定时任务动态调整tcp长连接的分配,频率为5秒、10秒、30秒、1分钟、5分钟,当然开发者可自行对定时任务的启动条件和负载均衡算法进行调整;所述定时任务的目的就是按实际需要对已识别身份的tcp长连接重新动态调整,以达到每一台服务器资源都能更合理的使用;

10、(4)主动指定连接;

11、客户端连接建立时被转发至服务器ⅰ,当接收到首次消息验证身份后,服务器ⅰ可直接调用netty服务的restful接口主动指定连接到服务器ⅱ。此场景更为灵活,进一步减少了netty服务的动态调整压力,同时能满足由业务服务进行动态分配的需求。

12、本专利技术进一步说明,所述负载均衡算法根据实际需要选用轮询法、加权轮询法、加权随机法、最小连接数法、随机法或者源地址哈希法。

13、本专利技术进一步说明,所述的tcp长连接动态反向代理与负载均衡的实现方法,在nginx、haproxy和traefik的应用。

14、nginx强大灵活,既支持http也支持tcp/udp负载均衡,也可作为web服务器。haproxy专注于高效性能,是tcp和http应用的负载均衡首选。traefik以其独特的自动化配置和与容器化应用(如kubernetes)的紧密整合而出名,支持较多的后端协议(http[s]、websocket、tcp)。三者均提供高可靠性、负载均衡、ssl支持等特性,差异主要在于特性的强调和整合的生态系统。这3个应用工具都可以用于tcp长连接的反向代理和负载均衡,但它们同样具有一个无法解决的问题,那就是没有动态反向代理的能力;这个问题难以解决的根源是网络通信分层设计给tcp带来的痛点;因此,将本专利技术的所述方法应用与这三个应用工具,使其具备动态反向代理的能力。

15、本专利技术的优点:

16、本专利技术实现了实现动态反向代理与负载均衡,能够更合理的分配tcp长连接。比如,一个未知的tcp长连接转发到了服务器ⅰ,只需要接收首次消息验证tcp长连接的身份后,在redis缓存tcp长连接参数,netty服务定时读取redis缓存中的全部tcp长连接参数,依据配置的负载均衡算法进行计算,并重新把部分tcp长连接反向代理到合适的服务器。当然也可以直接由服务器ⅰ通过调用netty服务的restful接口,指定某个tcp长连接重新连接到某台服务器上。以此达到动态的调整每一个服务器的tcp长连接,实现更合理的服务器资源均衡使用。

本文档来自技高网...

【技术保护点】

1.一种TCP长连接动态反向代理与负载均衡的实现方法,其特征在于包括:

2.根据权利要求1所述的TCP长连接动态反向代理与负载均衡的实现方法,其特征在于:所述负载均衡算法根据实际需要选用轮询法、加权轮询法、加权随机法、最小连接数法、随机法或者源地址哈希法。

3.根据权利要求1所述的TCP长连接动态反向代理与负载均衡的实现方法,其特征在于:所述实现方法在Nginx、HAProxy和Traefik的应用。

【技术特征摘要】

1.一种tcp长连接动态反向代理与负载均衡的实现方法,其特征在于包括:

2.根据权利要求1所述的tcp长连接动态反向代理与负载均衡的实现方法,其特征在于:所述负载均衡算法根据实际需要选用轮询法、加权轮询...

【专利技术属性】
技术研发人员:陈健哲黄楚棋刘银霞李世全侯玉娟
申请(专利权)人:广西壮族自治区公众信息产业有限公司
类型:发明
国别省市:

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

1