一种服务器连接方法、计算机可读存储介质及终端设备技术

技术编号:19352624 阅读:28 留言:0更新日期:2018-11-07 17:40
本发明专利技术属于计算机技术领域,尤其涉及一种服务器连接方法、计算机可读存储介质及终端设备。所述方法本发明专利技术实施例获取终端设备的身份标识;使用预设的第一哈希函数对所述身份标识进行哈希运算,得到所述终端设备的哈希值;将所述终端设备的哈希值映射至哈希环的第一节点;获取所述哈希环上的各个基准节点;从所述第一节点开始顺时针或者逆时针查找所述基准节点,并将查找到的第一个基准节点所对应的服务器确定为优选服务器;建立所述终端设备与所述优选服务器之间的通信连接。减少了服务器资源的浪费,也大大降低了消息重发的几率。

【技术实现步骤摘要】
一种服务器连接方法、计算机可读存储介质及终端设备
本专利技术属于计算机
,尤其涉及一种服务器连接方法、计算机可读存储介质及终端设备。
技术介绍
消息推送的基础需要保持用户的终端设备与服务器建立的长连接。随着用户的终端设备数量不断增加,长连接服务器也需要随时横向扩容。目前建立长连接的方式是由用户的终端设备随机请求某台服务器来保持长连接。这种情况下,推送消息时就需要将消息分发给每一台服务器,由保持长连接的那一台服务器推送至用户的终端设备,不仅造成服务器资源的浪费,也增大消息重发的几率。
技术实现思路
有鉴于此,本专利技术实施例提供了一种服务器连接方法、计算机可读存储介质及终端设备,以解决由用户的终端设备随机请求某台服务器来保持长连接所造成的服务器资源浪费以及消息重发几率增大的问题。本专利技术实施例的第一方面提供了一种服务器连接方法,可以包括:获取终端设备的身份标识;使用预设的第一哈希函数对所述身份标识进行哈希运算,得到所述终端设备的哈希值;将所述终端设备的哈希值映射至哈希环的第一节点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,每个节点均为构成所述哈希环的一个函数值,所述第一节点为所述哈希环上的任意一个节点;获取所述哈希环上的各个基准节点,其中,每个基准节点均为所述哈希环上与一个服务器对应的节点;从所述第一节点开始顺时针或者逆时针查找所述基准节点,并将查找到的第一个基准节点所对应的服务器确定为优选服务器;建立所述终端设备与所述优选服务器之间的通信连接。本专利技术实施例的第二方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下步骤:获取终端设备的身份标识;使用预设的第一哈希函数对所述身份标识进行哈希运算,得到所述终端设备的哈希值;将所述终端设备的哈希值映射至哈希环的第一节点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,每个节点均为构成所述哈希环的一个函数值,所述第一节点为所述哈希环上的任意一个节点;获取所述哈希环上的各个基准节点,其中,每个基准节点均为所述哈希环上与一个服务器对应的节点;从所述第一节点开始顺时针或者逆时针查找所述基准节点,并将查找到的第一个基准节点所对应的服务器确定为优选服务器;建立所述终端设备与所述优选服务器之间的通信连接。本专利技术实施例的第三方面提供了一种服务器连接终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:获取终端设备的身份标识;使用预设的第一哈希函数对所述身份标识进行哈希运算,得到所述终端设备的哈希值;将所述终端设备的哈希值映射至哈希环的第一节点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,每个节点均为构成所述哈希环的一个函数值,所述第一节点为所述哈希环上的任意一个节点;获取所述哈希环上的各个基准节点,其中,每个基准节点均为所述哈希环上与一个服务器对应的节点;从所述第一节点开始顺时针或者逆时针查找所述基准节点,并将查找到的第一个基准节点所对应的服务器确定为优选服务器;建立所述终端设备与所述优选服务器之间的通信连接。本专利技术实施例与现有技术相比存在的有益效果是:本专利技术实施例获取终端设备的身份标识;使用预设的第一哈希函数对所述身份标识进行哈希运算,得到所述终端设备的哈希值;将所述终端设备的哈希值映射至哈希环的第一节点;获取所述哈希环上的各个基准节点;从所述第一节点开始顺时针或者逆时针查找所述基准节点,并将查找到的第一个基准节点所对应的服务器确定为优选服务器;建立所述终端设备与所述优选服务器之间的通信连接。即通过设置一个由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的哈希环,将服务器以及终端设备均映射至哈希环上,建立起了服务器与终端设备之间的空间对应关系,通过顺时针或者逆时针查找的方式即可确定出与终端设备对应的优选服务器,由于哈希运算发生碰撞的概率几乎可以忽略不计,因此通过这种方式确定出的优选服务器可视为是唯一的,从而减少了服务器资源的浪费,也大大降低了消息重发的几率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术实施例中一种服务器连接方法的一个实施例流程图;图2为哈希环的示意图;图3为终端设备的哈希值映射至哈希环的节点上的示意图;图4为服务器的哈希值映射至哈希环的节点上的一种示意图;图5为服务器的哈希值映射至哈希环的节点上的另一种示意图;图6为本专利技术实施例中一种服务器连接装置的示意框图。图7为本专利技术实施例中一种服务器连接终端设备的示意框图。具体实施方式为使得本专利技术的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本专利技术一部分实施例,而非全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术实施例中一种服务器连接方法的一个实施例可以包括:步骤S101、获取终端设备的身份标识。终端设备的身份标识可以是指终端的国际移动设备身份码(InternationalMobileEquipmentIdentity,IMEI),国际移动设备身份码是由15位数字组成的电子串号,它与每个终端设备一一对应,而且该码是全世界唯一的。每一个终端设备在组装完成后都将被赋予一个全球唯一的号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。步骤S102、使用预设的第一哈希函数对所述身份标识进行哈希运算,得到所述终端设备的哈希值。所有的哈希函数都有如下一个基本特性:如果两个哈希值是不相同的(根据同一哈希函数),那么这两个哈希值的原始输入也是不相同的。这个特性使哈希函数具有确定性的结果。但另一方面,哈希函数的输入和输出不是唯一对应关系的,如果两个哈希值相同,两个输入值很可能是相同的,但也可能不同,这种情况称为“哈希碰撞”,这通常是两个不同的输入值,刻意计算出相同的输出值。但对于现有技术中常用的哈希函数而言,其发生碰撞的概率极低,几乎可以忽略不计,输入一些数据计算出哈希值,然后部分改变输入值,一个具有强混淆特性的哈希函数会产生一个完全不同的哈希值。本实施例中的第一哈希函数可以包括但不限于MD4、MD5、SHA1等任意一个现有技术中常用的哈希函数。将获取到的终端设备的身份标识分别表示为:IMEI1、IMEI2、IMEI3、……、IMEIm、……、IMEIM,其中,IMEIm为第m个终端设备的身份标识,1≤m≤M,M为终端设备的总个数。然后,计算各个终端设备的哈希值:Keym=HashFunc1(IMEIm)其中,HashFunc1为第一哈希函数,Keym为第m个终端设备的本文档来自技高网...

【技术保护点】
1.一种服务器连接方法,其特征在于,包括:获取终端设备的身份标识;使用预设的第一哈希函数对所述身份标识进行哈希运算,得到所述终端设备的哈希值;将所述终端设备的哈希值映射至哈希环的第一节点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,每个节点均为构成所述哈希环的一个函数值,所述第一节点为所述哈希环上的任意一个节点;获取所述哈希环上的各个基准节点,其中,每个基准节点均为所述哈希环上与一个服务器对应的节点;从所述第一节点开始顺时针或者逆时针查找所述基准节点,并将查找到的第一个基准节点所对应的服务器确定为优选服务器;建立所述终端设备与所述优选服务器之间的通信连接。

【技术特征摘要】
1.一种服务器连接方法,其特征在于,包括:获取终端设备的身份标识;使用预设的第一哈希函数对所述身份标识进行哈希运算,得到所述终端设备的哈希值;将所述终端设备的哈希值映射至哈希环的第一节点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,每个节点均为构成所述哈希环的一个函数值,所述第一节点为所述哈希环上的任意一个节点;获取所述哈希环上的各个基准节点,其中,每个基准节点均为所述哈希环上与一个服务器对应的节点;从所述第一节点开始顺时针或者逆时针查找所述基准节点,并将查找到的第一个基准节点所对应的服务器确定为优选服务器;建立所述终端设备与所述优选服务器之间的通信连接。2.根据权利要求1所述的服务器连接方法,其特征在于,所述基准节点的设置过程包括:获取各个服务器的身份标识;使用预设的第二哈希函数分别对各个服务器的身份标识进行哈希运算,得到各个服务器的哈希值,所述第二哈希函数的值域与所述第一哈希函数的值域一致;将各个服务器的哈希值映射至所述哈希环上,得到各个所述基准节点。3.根据权利要求1所述的服务器连接方法,其特征在于,所述基准节点的设置过程包括:获取各个服务器的身份标识;根据下式计算各个服务器的扩展身份标识:Ext_ServerIDm,n=ExtFunc(ServerIDm,n)其中,m为服务器的序号,1≤m≤M,M为服务器的总数,ServerIDm为第m个服务器的身份标识,n为扩展身份标识的序号,1≤n≤Nm,Nm为第m个服务器的扩展身份标识的总数,Nm与第m个服务器的中央处理器的主频正相关,且与第m个服务器的内存容量正相关,ExtFunc为预设的函数,Ext_ServerIDm,n为第m个服务器的第n个扩展身份标识;使用预设的第二哈希函数分别对各个服务器的扩展身份标识进行哈希运算,得到各个服务器的哈希值,所述第二哈希函数的值域与所述第一哈希函数的值域一致;将各个服务器的哈希值映射至所述哈希环上,得到各个所述基准节点。4.根据权利要求3所述的服务器连接方法,其特征在于,所述第二哈希函数的设置过程包括:从预设的哈希函数集合中任意选取一个哈希函数作为候选函数,所述哈希函数集合包括一个以上的哈希函数;使用所述候选函数分别对各个服务器的扩展身份标识进行哈希运算,得到各个服务器的哈希值;根据下式构造哈希值序列:HashArrayT=(hashvt1,hashvt2,......,hashvttn,......,hashvtTN)其中,1≤tn≤TN,TN为各个服务器的哈希值的总数,且hashvttn∈HashValueSetT,且hashvttn≤hashvttn+1,HashValueSetT为由各个服务器的哈希值组成的集合;根据下式计算所述候选函数的均匀度:其中,HashMax为所述候选函数的最大函数值,EvenDeg为所述候选函数的均匀度;若所述候选函数的均匀度大于预设的均匀度阈值,则将所述候选函数从所述哈希函数集合中删除,然后返回执行所述从预设的哈希函数集合中任意选取一个哈希函数作为候选函数的步骤;若所述候选函数的均匀度小于或等于预设的均匀度阈值,则将所述候选函数确定为第二哈希函数。5.根据权利要求3所述的服务器连接方法,其特征在于,所述第二哈希函数的设置过程包括:从预设的哈希函数集合中任意选取一个哈希函数作为候选函数,所述哈希函数集合包括一个以上的哈希函数;使用所述候选函数分别对各个服务器的扩展身份标识进行哈希运算,得到各个服务器的哈希值;根据下式构造各个哈希值序列:HashArrayT=(hashvt1,hashvt2,......,hashvttn,......,hashvtTN)其中,1≤tn≤TN,TN为各个服务器的哈希值的总数,且hashvttn∈HashValueSetT,且hashvttn≤hashvttn+1,HashValueSetT为由各个服务器的哈希值组成的集合,hashvm,n∈HashValueSetm,且hashvm,n≤hashvm,n+1,HashValueSetm为由第m个服务器的哈希值组成的集合;根据下式计算所述候选函数的均匀度:其中,HashMax为所述候选函数的最大函数值,η为预设的比例系数,EvenDeg为所述候选函数的均匀度;若所述候选函数的均匀度大于预设的均匀度阈值,则将所述候选函数从所述哈希函数集合中删除,然后返回执行所述从预设的哈希函数集合中任意选取一个哈希函数作为候选函数的步骤;若所述候选函数的均匀度小于或等于预设的均匀度阈值,则将所述候选函数确定为第二哈希函数。6...

【专利技术属性】
技术研发人员:王丽
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1