CN107689878A - 基于命名调度的tcp长连接负载均衡*** - Google Patents
基于命名调度的tcp长连接负载均衡*** Download PDFInfo
- Publication number
- CN107689878A CN107689878A CN201610633769.6A CN201610633769A CN107689878A CN 107689878 A CN107689878 A CN 107689878A CN 201610633769 A CN201610633769 A CN 201610633769A CN 107689878 A CN107689878 A CN 107689878A
- Authority
- CN
- China
- Prior art keywords
- module
- server
- client
- tcp
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于命名调度的TCP长连接负载均衡***,其包括:服务器;架构修改模块,架构修改模块增加相同的服务器,扩充整个长连接服务的并发承载能力;命名服务模块,命名服务模块会维护着所有服务器的可用与负载状态,每次客户端需要连接到服务器之前,先访问命名服务模块,该服务会从列表中按优先级算法随机选出一个服务器地址返回给客户端供客户端连接;通讯连接控制模块,通讯连接控制模块和各个服务器保持通讯连接。本发明让TCP长连接服务节点能够以集群方式部署,并且集群内能够负载均衡,节点故障快速切换,来解决长连接服务中连接数量上限和单点故障的问题。
Description
技术领域
本发明涉及一种均衡***,特别是涉及一种基于命名调度的TCP长连接负载均衡***。
背景技术
TCP长连接广泛应用于事实消息推送,数据传输领域,可以支撑起集群内信息传输,实时文字聊天等等业务.保证长连接的实时性与健壮性,对于各种***的性能指标有很大意义。目前,使用长连接的***中服务器往往只存在一个实例,所有的长连接客户端依照预先定义好的IP地址和端口,同服务器节点建立TCP连接。该服务器节点承载所有客户端的连接压力,同时还要同客户端保持着通讯连接和处理业务逻辑。在服务端出现变化时,客户端因为只有一个预先定义好的地址,不会进行切换,其***的架构图1所示。
现有技术中,存在最主要的问题在于服务端长连接节点为单点部署的。在实时聊天等业务中。单一一个服务器往往只能承载最多20000个并发,当随着业务的发展,需要接入的客户端数量大于20000时,现有技术就没有办法应对。并且由于服务端是单点的,当部署长连接的服务器宕机时,所有客户端连接都会断开,并且因为找不到备选的长连接服务节点而无法继续使用。
发明内容
本发明所要解决的技术问题是提供一种基于命名调度的TCP长连接负载均衡***,其让TCP长连接服务节点能够以集群方式部署,并且集群内能够负载均衡,节点故障快速切换,来解决长连接服务中连接数量上限和单点故障的问题。
本发明是通过下述技术方案来解决上述技术问题的:一种基于命名调度的TCP长连接负载均衡***,其特征在于,所述基于命名调度的TCP长连接负载均衡***包括:
服务器,服务器包括TCP反向代理模块、哈希计算模块和多个长连接节点;TCP反向代理模块接收客户端请求并将客户端请求平均的分布到多个长连接节点上;哈希计算模块对客户端的IP地址进行哈希计算,再对其哈希值与长连接节点数取模,得到的数字即为代理到的节点的编号;
架构修改模块,架构修改模块增加相同的服务器,扩充整个长连接服务的并发承载能力;
命名服务模块,命名服务模块会维护着所有服务器的可用与负载状态,每次客户端需要连接到服务器之前,先访问命名服务模块,该服务会从列表中按优先级算法随机选出一个服务器地址返回给客户端供客户端连接;
通讯连接控制模块,通讯连接控制模块和各个服务器保持通讯连接。
优选地,所述服务器与至少一个客户端连接,命名服务模块通过通讯连接控制模块与服务器连接,命名服务模块还与客户端连接,哈希计算模块、多个长连接节点都与TCP反向代理模块连接,哈希计算模块与多个长连接节点连接,服务器、客户端都与架构修改模块连接。
优选地,所述基于命名调度的TCP长连接负载均衡***还包括业务处理服务模块,业务处理服务模块在需要群发的时候,业务处理服务模块通过远程过程调用协议调用每个长连接节点,通知长连接节点发送消息。
优选地,所述服务器、客户端都与业务处理服务模块连接。
本发明的积极进步效果在于:本发明让TCP长连接服务节点能够以集群方式部署,并且集群内能够负载均衡,节点故障快速切换,来解决长连接服务中连接数量上限和单点故障的问题。本发明支持横向扩展,可以通过增加服务器来实现***总并发能力的提升。本发明实现自动故障转移,在单个服务器故障的时候,自动将该服务器的所有客户端转移到其他服务器。本发明实现动态负载均衡,根据服务端节点负载,动态的分配客户端连接到不同服务器上。
附图说明
图1为现有TCP长连接***的原理框图。
图2为本发明基于命名调度的TCP长连接负载均衡***的原理框图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
如图2所示,本发明基于命名调度的TCP长连接负载均衡***包括:
服务器,服务器包括TCP反向代理模块、哈希计算模块和多个长连接节点;TCP反向代理模块接收客户端请求并将客户端请求平均的分布到多个长连接节点上;哈希计算模块对客户端的IP地址进行哈希计算,再对其哈希值与长连接节点数取模,得到的数字即为代理到的节点的编号;
架构修改模块,架构修改模块增加相同的服务器,扩充整个长连接服务的并发承载能力;
命名服务模块,命名服务模块会维护着所有服务器的可用与负载状态,每次客户端需要连接到服务器之前,先访问命名服务模块,该服务会从列表中按优先级算法随机选出一个服务器地址返回给客户端供客户端连接;
通讯连接控制模块,通讯连接控制模块和各个服务器保持通讯连接。
服务器与至少一个客户端连接,命名服务模块通过通讯连接控制模块与服务器连接,命名服务模块还与客户端连接,哈希计算模块、多个长连接节点都与TCP反向代理模块连接,哈希计算模块与多个长连接节点连接,服务器、客户端都与架构修改模块连接。
本发明基于命名调度的TCP长连接负载均衡***还可以包括业务处理服务模块,业务处理服务模块
服务器、客户端都与业务处理服务模块连接。
如今服务器的CPU芯片往往都是多核,这就意味着,如果单台服务器上如果只部署一个长连接节点,则会造成对CPU芯片极大的浪费。所以需要在单个服务器上增加多个长连接节点部署来充分利用多核资源。而在本架构中,本发明引入了一个TCP反向代理模块,前端长连接客户端并不会直接连接到长连接节点上,而是先连接到TCP反向代理模块上,即TCP反向代理模块接收客户端请求,而后TCP反向代理模块再将客户端请求平均的分布到服务器后端的多个长连接节点上。
由于TCP连接可能中断,TCP长连接客户端经常会需要进行重连,在进行重连时,如果TCP反向代理模块将重新连接上的客户端随机的代理给一个长连接节点来处理,则有可能分配给的并不是重连之前的节点,这就会造成会话控制(session)信息丢失。在处理此类问题时,一定要实现黏性会话控制(session),即单个客户端通过TCP反向代理之后始终只会被分配到一个节点上。在这里,本发明可以通过哈希计算模块对客户端的IP地址进行哈希计算,再对其哈希值与长连接节点数取模,得到的数字即为代理到的节点的编号。
在解决了单台服务器可以部署多个节点之后,***的并发性能提升了许多,但是单台服务器可以承载的并发量依然有上限。随着业务的发展,服务器总会有负载达到上限的一天。所以本发明需要添加架构修改模块,使***可以横向扩展,增加相同的服务器,就可以扩充整个长连接服务的并发承载能力。在这种方法,客户端会随机的选择一个服务器地址进行连接,如此就将客户端连接的负载平均的分散在了几个服务器上。
每个客户端都能随机的访问到一个服务器地址,只需要扩充服务器,就可以扩充整个长连接服务的并发承载能力。但是,如果某个服务器突然故障,无法工作,这时候长连接客户端是感知不到服务端故障的,依然有可能随机分配到已经故障的服务器上,影响正常业务。这时需要服务端告诉客户端哪些服务器地址是可用的,或者直接分配一个可用的服务端地址给客户端。这种情况下本发明需要在服务端增加一个命名服务模块,该命名服务模块会维护着所有服务器的可用与负载状态,每次客户端需要连接到服务器之前,先访问命名服务模块,该服务会从列表中按优先级算法随机选出一个服务器地址返回给客户端供客户端连接,这样便做到的负载均衡。
命名服务模块需要知道各服务器的实时可用与负载情况,这可以通过通讯连接控制模块和各个服务器保持通讯连接来实现。
在很多业务场景中,消息是需要群发的,而在这样的这样TCP服务器是分布式的情况下,客户端分布在多个服务器之间,想要群发消息的时候需要将这个消息发送个所有的服务器节点上。如此本发明再在所有的服务器节点后面增加一个业务处理服务模块,长连接节点和业务处理服务模块通过RPC来互相调用,在需要群发的时候,业务处理服务模块通过RPC(Remote Procedure Call Protocol,远程过程调用协议)调用每个长连接节点,通知其发送消息。
以上所述的具体实施例,对本发明的解决的技术问题、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于命名调度的TCP长连接负载均衡***,其特征在于,所述基于命名调度的TCP长连接负载均衡***包括:
服务器,服务器包括TCP反向代理模块、哈希计算模块和多个长连接节点;TCP反向代理模块接收客户端请求并将客户端请求平均的分布到多个长连接节点上;哈希计算模块对客户端的IP地址进行哈希计算,再对其哈希值与长连接节点数取模,得到的数字即为代理到的节点的编号;
架构修改模块,架构修改模块增加相同的服务器,扩充整个长连接服务的并发承载能力;
命名服务模块,命名服务模块会维护着所有服务器的可用与负载状态,每次客户端需要连接到服务器之前,先访问命名服务模块,该服务会从列表中按优先级算法随机选出一个服务器地址返回给客户端供客户端连接;
通讯连接控制模块,通讯连接控制模块和各个服务器保持通讯连接。
2.如权利要求1所述的基于命名调度的TCP长连接负载均衡***,其特征在于,所述服务器与至少一个客户端连接,命名服务模块通过通讯连接控制模块与服务器连接,命名服务模块还与客户端连接,哈希计算模块、多个长连接节点都与TCP反向代理模块连接,哈希计算模块与多个长连接节点连接,服务器、客户端都与架构修改模块连接。
3.如权利要求2所述的基于命名调度的TCP长连接负载均衡***,其特征在于,所述基于命名调度的TCP长连接负载均衡***还包括业务处理服务模块,业务处理服务模块在需要群发的时候,业务处理服务模块通过远程过程调用协议调用每个长连接节点,通知长连接节点发送消息。
4.如权利要求3所述的基于命名调度的TCP长连接负载均衡***,其特征在于,所述服务器、客户端都与业务处理服务模块连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610633769.6A CN107689878A (zh) | 2016-08-04 | 2016-08-04 | 基于命名调度的tcp长连接负载均衡*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610633769.6A CN107689878A (zh) | 2016-08-04 | 2016-08-04 | 基于命名调度的tcp长连接负载均衡*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107689878A true CN107689878A (zh) | 2018-02-13 |
Family
ID=61151521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610633769.6A Pending CN107689878A (zh) | 2016-08-04 | 2016-08-04 | 基于命名调度的tcp长连接负载均衡*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107689878A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108933829A (zh) * | 2018-07-10 | 2018-12-04 | 浙江数链科技有限公司 | 一种负载均衡方法及装置 |
CN108984306A (zh) * | 2018-07-16 | 2018-12-11 | 广发证券股份有限公司 | 一种依据tcp请求质量评估的负载均衡调度***和方法 |
CN109194723A (zh) * | 2018-08-16 | 2019-01-11 | 深圳市华讯方舟太赫兹科技有限公司 | 通信方法、安检***、服务器以及计算机存储介质 |
CN110266778A (zh) * | 2019-06-06 | 2019-09-20 | 深圳市灵星雨科技开发有限公司 | 一种多对多长连接网络通信装置以及设备 |
CN111147389A (zh) * | 2018-11-06 | 2020-05-12 | 营利度富信息***(上海)有限公司 | Tcp长连接服务器负载均衡***及方法 |
CN111225242A (zh) * | 2020-01-17 | 2020-06-02 | 广州酷狗计算机科技有限公司 | 视频播放容灾方法、装置及计算机存储介质 |
CN112583895A (zh) * | 2020-11-27 | 2021-03-30 | 北京智芯微电子科技有限公司 | Tcp通信方法、***及装置 |
CN114938373A (zh) * | 2022-05-23 | 2022-08-23 | 睿云联(厦门)网络通讯技术有限公司 | 一种云平台tcp长连接服务的高可用连接方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101207550A (zh) * | 2007-03-16 | 2008-06-25 | 中国科学技术大学 | 负载均衡***及多种业务实现负载均衡的方法 |
CN103618738A (zh) * | 2013-12-09 | 2014-03-05 | 惠州华阳通用电子有限公司 | 一种实现tcp长连接通信的负载智能分配***及方法 |
CN104283948A (zh) * | 2014-09-26 | 2015-01-14 | 东软集团股份有限公司 | 服务器集群***及其负载均衡实现方法 |
-
2016
- 2016-08-04 CN CN201610633769.6A patent/CN107689878A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101207550A (zh) * | 2007-03-16 | 2008-06-25 | 中国科学技术大学 | 负载均衡***及多种业务实现负载均衡的方法 |
CN103618738A (zh) * | 2013-12-09 | 2014-03-05 | 惠州华阳通用电子有限公司 | 一种实现tcp长连接通信的负载智能分配***及方法 |
CN104283948A (zh) * | 2014-09-26 | 2015-01-14 | 东软集团股份有限公司 | 服务器集群***及其负载均衡实现方法 |
Non-Patent Citations (1)
Title |
---|
胡晓燕: "基于命名调度的TCP长连接负载均衡***", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108933829A (zh) * | 2018-07-10 | 2018-12-04 | 浙江数链科技有限公司 | 一种负载均衡方法及装置 |
CN108984306A (zh) * | 2018-07-16 | 2018-12-11 | 广发证券股份有限公司 | 一种依据tcp请求质量评估的负载均衡调度***和方法 |
CN109194723A (zh) * | 2018-08-16 | 2019-01-11 | 深圳市华讯方舟太赫兹科技有限公司 | 通信方法、安检***、服务器以及计算机存储介质 |
CN111147389A (zh) * | 2018-11-06 | 2020-05-12 | 营利度富信息***(上海)有限公司 | Tcp长连接服务器负载均衡***及方法 |
CN110266778A (zh) * | 2019-06-06 | 2019-09-20 | 深圳市灵星雨科技开发有限公司 | 一种多对多长连接网络通信装置以及设备 |
CN111225242A (zh) * | 2020-01-17 | 2020-06-02 | 广州酷狗计算机科技有限公司 | 视频播放容灾方法、装置及计算机存储介质 |
CN112583895A (zh) * | 2020-11-27 | 2021-03-30 | 北京智芯微电子科技有限公司 | Tcp通信方法、***及装置 |
CN112583895B (zh) * | 2020-11-27 | 2023-04-07 | 北京智芯微电子科技有限公司 | Tcp通信方法、***及装置 |
CN114938373A (zh) * | 2022-05-23 | 2022-08-23 | 睿云联(厦门)网络通讯技术有限公司 | 一种云平台tcp长连接服务的高可用连接方法及*** |
CN114938373B (zh) * | 2022-05-23 | 2023-11-03 | 睿云联(厦门)网络通讯技术有限公司 | 一种云平台tcp长连接服务的高可用连接方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107689878A (zh) | 基于命名调度的tcp长连接负载均衡*** | |
US8825867B2 (en) | Two level packet distribution with stateless first level packet distribution to a group of servers and stateful second level packet distribution to a server within the group | |
US8601073B2 (en) | Methods, systems, and computer readable media for source peer capacity-based diameter load sharing | |
CN105610632B (zh) | 一种虚拟网络设备及相关方法 | |
CN102143046A (zh) | 负载均衡的方法、设备和*** | |
CN103475566A (zh) | 一种实时消息交换平台及分布式集群组建方法 | |
CN105227602A (zh) | 一种负载均衡的方法、客户端、注册服务器和*** | |
US9621412B2 (en) | Method for guaranteeing service continuity in a telecommunication network and system thereof | |
CN112202918B (zh) | 长连接通信的负载调度方法、装置、设备及存储介质 | |
WO2018090386A1 (zh) | 一种nf组件异常的处理方法、设备及*** | |
CN103795569A (zh) | 一种基于连接池的服务器连接方法和装置 | |
JP2013090072A (ja) | サービス提供システム | |
CN112968965B (zh) | Nfv网络节点的元数据服务方法、服务器及存储介质 | |
CN103248504A (zh) | 一种集群节点匹配方法、集群通信模块、设备及*** | |
CN107645540A (zh) | web应用***的负载均衡方法 | |
US9729454B2 (en) | Methods, systems, and computer readable media for balancing diameter message traffic received over long-lived diameter connections | |
US10027577B2 (en) | Methods, systems, and computer readable media for peer aware load distribution | |
CN110247971B (zh) | 减少消息中间件连接数量的方法及其*** | |
CN101702673A (zh) | 基于bs架构的负载均衡方法 | |
CN114900526A (zh) | 负载均衡方法及***、计算机存储介质、电子设备 | |
JP2023547880A (ja) | バックアップネットワーク機能を提供するためのネットワークノードおよびネットワークノードにおける方法 | |
CN110474781B (zh) | 一种组播数据转发的方法及装置 | |
CN107508760B (zh) | 一种基于线路源ip进行负载分发的方法 | |
CN108093147B (zh) | 一种分布式多级调度方法和设备 | |
CN111147389A (zh) | Tcp长连接服务器负载均衡***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180213 |