System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种TCP连接方法、服务器及TCP连接系统技术方案_技高网

一种TCP连接方法、服务器及TCP连接系统技术方案

技术编号:40022631 阅读:14 留言:0更新日期:2024-01-16 17:00
本发明专利技术提供了一种TCP连接方法、服务器及TCP连接系统,涉及大数据领域,方法包括:响应目标消费方更新事件和/或目标服务提供方更新事件,获取目标消费方的消费节点数量和目标服务提供方的服务节点数量;根据消费节点数量与服务节点数量计算为目标消费方各消费节点分配服务节点的目标数量;为目标消费方的各消费节点分配目标数量个目标服务提供方的服务节点得到分配结果;根据分配结果将已分配的服务节点分发至对应的消费节点,以使消费节点与对应的服务节点建立TCP连接。可见,本发明专利技术可以减少消费节点连接服务节点的数量,从而有效减少多余的TCP网络连接的维护成本和占用的资源。

【技术实现步骤摘要】

本专利技术涉及大数据领域,尤其涉及一种tcp连接方法、服务器及tcp连接系统。


技术介绍

1、分布式远程过程调用(简称rpc)架构中,包括多个消费方、多个服务提供方和注册中心。服务提供方向注册中心发布服务信息和服务地址(提供方ip地址),消费方从注册中心订阅服务并根据服务信息与所有服务提供方建立tcp网络连接,即订阅服务的所有消费方与发布服务的每个服务提供方建立tcp网络连接,tcp网络连接方式如图1所示。在建立tcp网络连接后,消费方会通过tcp连接与服务提供方进行网络通信,从而进行交易。

2、但是在rpc场景下,由于订阅服务的所有消费方会分别与发布服务的每个服务提供方建立tcp网络连接,假如有n个消费方且每个消费方中部署n个消费节点,m个服务提供方且每个服务提供方中部署m个服务节点,在这种场景下每个消费方需要建立维护m*m个tcp连接,每个服务提供方需要维护n*n个tcp连接。但是对于单个服务负载均衡情况下,该情况可以理解为每个消费方对应一个服务提供方,在该种情况下,多余的tcp网络连接不但造成网络连接(例如网络缓存和端口号等)维护成本较高,而且发送心跳进行保活也会对服务消费方与服务提供方造成很大的系统负载。


技术实现思路

1、针对现有技术中的问题,本专利技术提供的一种tcp连接方法、服务器及tcp连接系统,可以减少消费节点连接服务节点的数量,从而有效减少多余的tcp网络连接的维护成本,也可减少tcp连接所占用的资源。

2、为解决上述技术问题,本专利技术提供以下技术方案:

3、第一方面,本专利技术提供一种tcp连接方法,包括:响应目标消费方更新事件和/或目标服务提供方更新事件,获取所述目标消费方的消费节点数量和所述目标服务提供方的服务节点数量;根据所述消费节点数量与所述服务节点数量计算为所述目标消费方各消费节点分配服务节点的目标数量;为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果;根据所述分配结果将已分配的服务节点分发至对应的消费节点,以使消费节点与对应的服务节点建立tcp连接。

4、可选的,所述响应目标消费方更新事件或目标服务提供方更新事件,获取所述目标消费方的消费节点数量和所述目标服务提供方的服务节点数量包括:响应注册中心发送的目标消费方目录更新事件或目标服务提供方目录更新事件,获取所述目标消费方目录和与所述目标消费方对应的目标服务提供方目录,或,获取所述目标服务提供方目录和与所述目标服务提供方对应的目标消费方目录,其中,所述目标消费方目录包括已上线的消费节点标识,所述目标服务提供方目录包括已上线的服务节点标识;通过遍历所述目标消费方目录的消费节点标识确定所述目标消费方的消费节点数量;通过遍历所述目标服务提供方目录的服务节点标识确定所述目标服务提供方的服务节点数量。

5、可选的,所述根据所述消费节点数量与所述服务节点数量计算为所述目标消费方各消费节点分配服务节点的目标数量包括:计算所述消费节点数量与所述服务节点数量的比值;对算得的比值进行向上取整处理得到的值作为所述目标数量。

6、可选的,所述为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:判断在预设时间段内接收到的更新事件数量是否达到预设数值,若达到,则通过第一策略为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果;若未达到,则通过第二策略为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果。

7、可选的,所述通过第一策略为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:统计所述目标服务提供方目录中各服务节点的tcp连接数;将相同tcp连接数的服务节点存储至与tcp连接数相同环数的环状链表中;从预设初始位置开始在环状链表中查找一个服务节点,所述预设初始位置包括第零环环形链表;当查找到第一个服务节点时,判断所述目标消费方的当前消费节点是否为最后一个消费节点,若否,判断为所述当前消费节点分配的服务节点数量是否达到所述目标数量;若达到,将从环形链表中查找到的第一个服务节点分配给所述当前消费节点的下一个消费节点,若未达到,将从所述环形链表中查找到的第一个服务节点分配给所述当前消费节点;将消费节点与为其分配的服务节点关联存储至所述目标消费方的分配结果中;将所述预设初始位置更新为所述已查找到的所述服务节点所在的环形链表;将所述已查找到的所述服务节点存储至其所在环形链表的下一个环形链表,并继续从所述预设初始位置开始查找服务节点;若为最后一个消费节点,得到所述分配结果。

8、可选的,所述通过第一策略为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:统计所述目标服务提供方目录中各服务节点的tcp连接数;将相同tcp连接数的服务节点存储至与tcp连接数相同环数的环状链表中;从预设初始位置开始在环状链表中查找与消费节点对应数量个服务节点,所述预设初始位置包括第零环环形链表;当查找到与消费节点对应数量个服务节点时,判断为消费节点分配的服务节点数量是否达到所述目标数量;若未达到所述目标数量,将已查找到的消费节点数量个服务节点依次分配给各消费节点;将消费节点与为其分配的服务节点关联存储至所述目标消费方的分配结果中;将所述预设初始位置更新为所述已查找到的服务节点中最大环数所对应的环形链表;将所述已查找到的服务节点分别存储至各服务节点所在环形链表的下一个环形链表,并继续从所述预设初始位置开始查找服务节点;若达到所述目标数量,则得到所述分配结果。

9、可选的,所述通过第二策略为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:根据已接收到的更新事件确定存在变动的消费节点和存在变动的服务节点;根据存在变动的服务节点更新所述目标服务提供方对应的环形链表得到更新后的环形链表;根据所述更新后的环形链表为所述存在变动的消费节点分配所述目标数量个所述目标服务提供方的服务节点;将上一次的分配结果中与所述存在变动的消费节点所对应的服务节点为当前分配的服务节点得到新的分配结果。

10、可选的,所述存在变动的消费节点包括下线的消费节点、上线的消费节点以及所述目标数量不等于上一次算得的目标数量的消费节点;所述存在变动的服务节点包括下线的服务节点、上线的服务节点以及被释放tcp连接的服务节点。

11、第二方面,本专利技术提供一种服务器,包括:节点数量获取模块,适于响应注册中心发送的目标消费方更新事件和/或目标服务提供方更新事件,获取所述目标消费方的消费节点数量和所述目标服务提供方的服务节点数量;服务节点数量确定模块,适于根据所述消费节点数量与所述服务节点数量计算为所述目标消费方各消费节点分配服务节点的目标数量;服务节点分配模块,适于为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果;分配结本文档来自技高网...

【技术保护点】

1.一种TCP连接方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述响应目标消费方更新事件或目标服务提供方更新事件,获取所述目标消费方的消费节点数量和所述目标服务提供方的服务节点数量包括:

3.如权利要求1所述的方法,其特征在于,所述根据所述消费节点数量与所述服务节点数量计算为所述目标消费方各消费节点分配服务节点的目标数量包括:

4.如权利要求2所述的方法,其特征在于,所述为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:

5.如权利要求4所述的方法,其特征在于,所述通过第一策略为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:

6.如权利要求4所述的方法,其特征在于,所述通过第一策略为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:

7.如权利要求4所述的方法,其特征在于,所述通过第二策略为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:

8.如权利要求7所述的方法,其特征在于,所述存在变动的消费节点包括下线的消费节点、上线的消费节点以及所述目标数量不等于上一次算得的目标数量的消费节点;

9.一种服务器,其特征在于,包括:

10.一种TCP连接系统,其特征在于,所述系统包括消费方、服务提供方和服务器,所述服务器分别与所述消费方和所述服务提供方通信连接;

11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至8中任一项所述的TCP连接方法的步骤。

12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的TCP连接方法的步骤。

...

【技术特征摘要】

1.一种tcp连接方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述响应目标消费方更新事件或目标服务提供方更新事件,获取所述目标消费方的消费节点数量和所述目标服务提供方的服务节点数量包括:

3.如权利要求1所述的方法,其特征在于,所述根据所述消费节点数量与所述服务节点数量计算为所述目标消费方各消费节点分配服务节点的目标数量包括:

4.如权利要求2所述的方法,其特征在于,所述为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:

5.如权利要求4所述的方法,其特征在于,所述通过第一策略为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:

6.如权利要求4所述的方法,其特征在于,所述通过第一策略为所述目标消费方的各消费节点分配所述目标数量个所述目标服务提供方的服务节点得到分配结果包括:

<...

【专利技术属性】
技术研发人员:丁兴中夏龙飞
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1