一种动态扩展通信连接数的管理方法与流程

文档序号:16775446发布日期:2019-02-01 18:41阅读:251来源:国知局

本发明涉及一种动态扩展通信连接数的管理方法。



背景技术:

在网约车项目中司机app客户端需要与服务端进行通信,如果通信的频率比较高,而使用短连接通信,app客户端连接服务端,发送数据,服务端接受完成即把通信连接关闭,这样就会把很多效率、时间浪费在连接和断开连接上。由此在司机app客户端需要与网约车平台服务端进行较为频繁的通信时都会使用长连接,通信完成后不关闭连接,以便之后重复使用,从而避免连接断开连接所浪费的效率与时间进行通信;而当应用上线后,随着时间的推移应用的用户也越来越多,从而导致司机app客户端需要与网约车平台服务端的长连接越来越多。在此情况下就需要一种能够动态扩充对司机app客户端提供长连接服务的服务器且对用户而言是无感知的一种机制。



技术实现要素:

1、所要解决的技术问题:

现在在用户量增加且现有提供长服务的服务器不能负荷的情况下,影响使用,需要进行增容,增容可能影响线上用户使用。所以需要一种对用户无感知的增容方式。技术方案:

为了解决以上问题,本发明提供了一种动态扩展通信连接数的管理方法,包括以下步骤:第一步:搭建至少两台nginx服务器,配置nginx将请求转发到已有的长连接服务器,多台转发配置保持一致;第二步:配置keepalived,对多台nginx进行热备;第三步:用户登录app客户端,登录成功后,平台服务端将提供长连接请求转发的nginx的keepalived虚拟地址及端口号发送给app客户端,app客户端接受到此数据后进行连接,如果连接失败后保持重试;第四步:app客户端连接成功后,负责提供长连接管理服务的平台服务端使用用户登录信息与当前服务所在服务器地址及端口等信息进行关联,并将关联数据保存下来,第五步:需要新增提供长连接的服务的服务器,找到当前处于备用状态的nginx服务器,在其转发列表中添加新增的服务器配置,并断开主服务器的连接,由于app客户端在连接断开时会尝试重新连接,此时按照虚拟地址连接到备用nginx服务器上,从而实现了后端提供长连接服务器的动态扩容。

在所述第四步中,将关联数据保存在数据库或者redis。

所述的关联数据结构为{“用户id”:“服务器ip+服务器端口”}。

在网平台服务端发生了某种事件需要通知app客户端,平台服务端在保存有用户与长连接服务器连接关系的数据中找到需要通知的用户所在的服务器,将消息发送至该服务器,服务器解析消息,找到用户对应的连接,将需要发送给app客户端的消息发送至app客户端。

所述的消息包括用户信息及需要发送给app客户端的信息。

2、有益效果:

本发明提供的解决在用户量增加且现有提供长服务的服务器不能负荷的情况下,服务提供商只需要增加提供长连接服务的服务器和一些简单的配置,并不影响现有用户使用情况下,动态扩容。

具体实施方式

下面通过实施例来对本发明进行详细说明。

实施例1

所述的平台服务端为网约车平台服务端。

第一步:搭建两台nginx服务器。配置nginx将请求转发到已有的长连接服务器。两台转发配置保持一致;第二步:配置keepalived,对两台台nginx进行热备,第三步:司机在app客户端登录成功后,网约车平台服务端将提供长连接请求转发的nginx的keepalived虚拟地址及端口号发送给司机的app客户端。所述的app客户端接受到此数据后进行连接,如果连接失败后保持重试;第四步:司机的app客户端连接成功后,负责提供长连接管理服务的网约车平台服务端,使用用户登录信息与当前服务所在服务器地址及端口等信息进行关联,并将关联数据保存下来,第五步:现有提供长连接服务的服务器的负荷量已经达到某个阈值时,这个阈值是长连接服务的服务器的负荷量已经饱和,无法负荷新登陆的司机进行长连接服务此时需要新增长连接的服务的服务器以供新司机进行与长连接服务器间的长连接服务找到当前处于备用状态的nginx服务器,在其转发列表中添加新增的服务器配置,并断开主服务器的连接。由于客户端在连接断开时会尝试重新连接,此时按照虚拟地址连接到备用nginx服务器上,从而实现了后端提供长连接服务器的动态扩容。

所述的关联数据保存在数据库或者redis,所述的关联数据结构为{“用户id”:“服务器ip+服务器端口”},例如{

"用户1id":"192.168.100.135:8081",

"用户2id":"192.168.100.135:8082",

}。

在网约车平台服务端发生了某种事件需要通知司机时,网约车平台服务端在保存有用户与长连接服务器连接关系的数据中找到需要通知的用户所在的服务器,将消息发送至该服务器,服务器解析消息,找到用户对应的连接,将需要发送给司机的消息发送至司机的app客户端。

所述的消息包括用户信息及需要发送给app客户端的信息。

实施例2

所述的平台服务端为网约车平台服务端。

第一步:搭建三台nginx服务器。配置nginx将请求转发到已有的长连接服务器。三台转发配置保持一致;第二步:配置keepalived,对三台台nginx进行热备。其它和实施例1相同。

本发明解决在用户量增加且现有提供长服务的服务器不能负荷的情况下,服务提供商只需要增加提供长连接服务的服务器和一些简单的配置,并不影响现有用户的情况下,动态扩容。

虽然本发明已以较佳实施例公开如上,但它们并不是用来限定本发明的,任何熟习此技艺者,在不脱离本发明之精神和范围内,自当可作各种变化或润饰,因此本发明的保护范围应当以本技术的权利要求保护范围所界定的为准。



技术特征:

技术总结
本发明涉及一种动态扩展通信连接数的管理方法,包括以下步骤:第一步:搭建至少两台nginx服务器,配置nginx,多台转发配置保持一致;第二步:配置keepalived,nginx进行热备;第三步:用户登录APP客户端成功后,平台服务端将提供长连接请求转发的nginx的keepalived虚拟地址及端口号发送给APP客户端,第四步:APP客户端连接成功,平台服务端使用用户登录信息与当前服务所在服务器地址及端口等信息进行关联,并将关联数据保存下来,第五步:需要新增提供长连接的服务的服务器,找到当前处于备用状态的nginx服务器,在其转发列表中添加新增的服务器配置,并断开主服务器的连接,重新连接,此时按照虚拟地址连接到备用nginx服务器上,从而实现了后端提供长连接服务器的动态扩容。

技术研发人员:李飞;张利岩;孙重阳
受保护的技术使用者:中通国脉物联科技南京有限公司
技术研发日:2018.09.14
技术公布日:2019.02.01
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1