短链接地址生成方法及系统与流程

文档序号:11138870阅读:1756来源:国知局
短链接地址生成方法及系统与制造工艺

本发明涉及即时通讯领域,特别地,涉及一种短链接地址生成方法及系统。



背景技术:

互联网应用中,基于内容的分享、传播以及获取的应用场景普遍存在。尤其是社交网络服务的广泛应用,使基于用户关系的信息传播更为方便。但是这种信息传播方式普遍存在字数限制的问题。为了承载更多信息量,通常分享的内容中附加短URL(Uniform Resource Locator:统一资源定位器)链接地址以减少目标URL过长导致占用有效字数问题。

短网址服务可以把一个长网址缩短,方便用户在社交网络和微博甚至是手机短信分享链接。例如,可以把这样一个长网址:

http://xue.neuedu.cn/ec_mbrowse/lrbrowse/coursemobile?resourceId=002903c6-8234-4a9c-a708-32a70dfafas4a8&isappinstalled=false

缩短成这样一个短网址:

http://neuedu.cn/awD5d

相对于长网址,短网址可以更方便地通过社交网络、微博和手机上传播,避免折行或超出字符限制。

目前的可行技术方案多集中于把目标URL字符串通过hash离散运算,变换成固定长度的输出,进而来表达唯一结果与目标URL进行关联。然而,这种转换是一种有损的压缩映射,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。短链接数量与发生碰撞的可能性成正相关,也即是短链接的长度通常在4~7个字符长度,hash函数的值域过小,随着短链接数量的增加,发生碰撞的可能性会逐渐增大,从而降低系统可用性。



技术实现要素:

本发明提供了一种短链接地址生成方法及系统,以解决现有的短链接生成方式随着数量增加容易产生碰撞,进而导致系统可用性低的技术问题。

本发明采用的技术方案如下:

根据本发明的一个方面,提供一种短链接地址生成方法,包括:

接收链接地址转换请求,将原始URL基于散列算法生成对应的哈希值;

判断内存缓存是否存在与哈希值匹配的短链接地址,若有则直接返回该短链接地址;否则,从短链接资源池中取用一个资源,生成短链接地址,将新生成的短链接地址返回并保存至内存缓存;

其中,短链接资源池为根据短链接地址资源需求对应的生成策略创建,生成策略包括选定的编码字符集和短链接地址对应的唯一标识字符串长度,短链接资源池通过改变唯一标识字符串长度来进行资源扩展。

进一步地,本发明短链接地址生成方法还包括对短链接资源池的资源消耗进行监测,包括:

判断短链接资源池的资源消耗是否达到阈值,若是则启动资源消耗告警,并手动或者自动对短链接资源池进行资源扩展。

进一步地,短链接资源池的创建包括:

选定短链接地址对应的编码字符集;

设定短链接地址对应的唯一标识字符串长度;

通过迭代算法生成顺序的唯一标识字符串资源列表;

通过洗牌算法生成乱序的唯一标识字符串资源列表并存储。

进一步地,唯一标识字符串长度根据短链接地址需求量设定,具体为:

Q≤B^n,其中,Q表示短链接地址需求量,B表示短链接地址对应的编码字符集包含的字符数量,n表示短链接地址对应的唯一标识字符串长度,^表示幂运算。

进一步地,短链接资源池内的资源经环形缓冲区缓存后被提取。

根据本发明的另一方面,还提供一种短链接地址生成系统,包括:

接收模块,用于接收链接地址转换请求,将原始URL基于散列算法生成对应的哈希值;

转换模块,用于判断内存缓存是否存在与哈希值匹配的短链接地址,若有则直接返回该短链接地址;否则,从短链接资源池中取用一个资源,生成短链接地址,将新生成的短链接地址返回并保存至内存缓存;

其中,短链接资源池为根据短链接地址资源需求对应的生成策略创建,生成策略包括选定的编码字符集和短链接地址对应的唯一标识字符串长度,短链接资源池通过改变唯一标识字符串长度来进行资源扩展。

进一步地,本发明短链接地址生成系统还包括:

资源池管理模块,用于对短链接资源池的资源消耗进行监测,包括:判断短链接资源池的资源消耗是否达到阈值,若是则启动资源消耗告警,并手动或者自动对短链接资源池进行资源扩展。

进一步地,本发明短链接地址生成系统还包括:

短链接访问模块,用于接收短链接访问请求,将接收的短链接地址映射到原始URL并跳转。

进一步地,短链接资源池内的资源经环形缓冲区缓存后被提取。

本发明具有以下有益效果:

本发明短链接地址生成方法及系统,根据选定的编码字符集及短链接地址对应的唯一标识字符串长度创建资源可扩展的短链接资源池,对接收的链接地址转换请求进行处理,先从内存缓存中检索是否存在匹配的短链接地址,若否,则通过调用短链接资源池生成短链接地址,返回短链接地址并保存至内存缓存中,既提高了短链接地址检索转换速度,又有效避免了由于哈希函数的值域过小引起的碰撞可能性增大的问题,从而提高了系统的可用性。

除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明优选实施例一短链接地址生成方法的流程示意图;

图2是本发明优选实施例一短链接地址生成方法的步骤示意图;

图3是本发明优选实施例短链接资源池的管理的流程示意图;

图4是本发明优选实施例短链接访问过程的流程示意图;

图5是本发明优选实施例短链接地址生成系统的方框示意图。

具体实施方式

以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。

实施例一:

本发明的优选实施例一提供了一种短链接地址生成方法,其基于通过指定字符集生成短链接资源池的增量式短链接地址生成方法,有效避免由于哈希函数的值域过小引起的碰撞可能性增大的问题。参照图1,本实施例短链接地址生成方法包括:

步骤S101,接收链接地址转换请求,将原始URL基于散列算法生成对应的哈希值;

作为一种较佳的方式,服务器接收到客户端发送的链接地址转换请求后,采用MD5散列算法基于原始URL生成一个hash值。

步骤S102,判断内存缓存是否存在与哈希值匹配的短链接地址,若有则执行步骤S103,否则执行步骤S104;

本实施例通过增加在内存缓存检索的方式,提高了短链接地址检索速度。作为一种较佳的方式,服务器采用分布式内存缓存的方式来检索与哈希值匹配的短链接地址。

步骤S103,返回检索到的与哈希值匹配的短链接地址;

当在分布式内存缓存中检索到与哈希值匹配的短链接地址,则直接返回短链接地址给客户端。

步骤S104,从短链接资源池中取用一个资源,生成短链接地址;

本实施例中,短链接资源池为根据短链接地址资源需求对应的生成策略创建,生成策略包括选定的编码字符集和短链接地址对应的唯一标识字符串长度,短链接资源池通过改变唯一标识字符串长度来进行资源扩展。

步骤S105,将新生成的短链接地址返回并保存至内存缓存。

将新生成的短链接地址返回给客户端,同时将该短链接地址与哈希值匹配保存至分布式内存缓存中。

本实施例先从内存缓存中检索是否存在匹配的短链接地址,若否,则通过调用短链接资源池生成短链接地址,返回短链接地址并保存至内存缓存中,既提高了短链接地址检索转换速度,又有效避免了由于哈希函数的值域过小引起的碰撞可能性增大的问题,从而提高了系统的可用性。

图2示出了本实施例短链接地址生成方法优选的步骤示意图,与图1所示的步骤一致,优选地,参照图2,短链接资源池内的资源经环形缓冲区缓存后被提取。资源缓冲区采用环形缓冲区设计,用于缓冲短链接资源池中的可用短链接资源,环形缓冲区所有的push和pop操作都是在一个固定的存储空间内进行,相对于队列缓冲区减少了对于缓冲区元素所用存储空间的分配、释放过程。环形缓冲区的设计有效提升资源取用的效率,提升系统性能。

实施例二:

实施例二与实施例一的区别在于:实施例二短链接地址生成方法还包括对短链接资源池的资源消耗进行监测,包括:

判断短链接资源池的资源消耗是否达到阈值,若是则启动资源消耗告警,并手动或者自动对短链接资源池进行资源扩展。

参照图3,本实施例短链接资源池的管理包括:

步骤S301,选定短链接地址对应的编码字符集;

该编码字符集符合URL编码规则,并且不具特殊含义的字符,具体可参考RFC3986文件。作为一种较佳的方式,采用‘A~Z’,‘a~z’,‘0~9’的62个字符作为短链接地址唯一标识字符串的编码字符集,符合URL编码规则并且在URL中不具有特殊含义且易于输入。

步骤S302,设定短链接地址对应的唯一标识字符串长度;

唯一标识字符串长度根据短链接地址需求量设定,具体为:

Q≤B^n,其中,Q表示短链接地址需求量,B表示短链接地址对应的编码字符集包含的字符数量,n表示短链接地址对应的唯一标识字符串长度,^表示幂运算。

例如对于一个网站或互联网应用,初期用于资源分享的短链接需求量为1000万,可以计算出10000000<62^4,那么初期可以选定短链接地址唯一标识字符串为4个字符长度。

步骤S303,通过迭代算法生成顺序的唯一标识字符串资源列表;

此处的迭代算法为现有技术,在此不再赘述。

步骤S304,通过洗牌算法生成乱序的唯一标识字符串资源列表;

此处的洗牌算法采用现有的随机洗牌算法,在此不再赘述。

步骤S305,存储至短链接资源池;

步骤S306,设定资源消耗阈值;

步骤S307,判断资源消耗是否达到预设阈值;若是则执行步骤S308;否则执行步骤S309;

步骤S308,启动资源消耗告警,并手动或者自动对短链接资源池进行资源扩展;

此处资源扩展包括手动方式和自动方式,其中,手动方式是指在接收到告警信息后,通过手动更改步骤S302中的唯一标识字符串长度,以扩展资源池中的资源数量;自动方式是指在生成告警信息后,服务器自动返回至步骤S302,增加唯一标识字符串长度,以扩展资源池中的资源数量。

步骤S309,从短链接资源池中提取资源以生成短链接地址。

作为一种较佳的方式,短链接资源池内的资源经环形缓冲区缓存后被提取。资源缓冲区采用环形缓冲区设计,用于缓冲短链接资源池中的可用短链接资源,环形缓冲区所有的push和pop操作都是在一个固定的存储空间内进行,相对于队列缓冲区减少了对于缓冲区元素所用存储空间的分配、释放过程。环形缓冲区的设计有效提升资源取用的效率,提升系统性能。

图4示出了短链接访问过程的流程示意图,参照图4,包括:

步骤S401,接收短链接访问请求;

服务器接收客户端发送的短链接访问请求。

步骤S402,解析短链接地址对应的唯一标识字符串;

步骤S403,检索短链接资源池是否存在与该短链接地址对应的原始URL,若是则执行步骤S404,否则执行步骤S405;

步骤S404,重定向到原始URL链接地址;

步骤S405,提示不存在。

根据本发明的另一方面,还提供一种短链接地址生成系统,参照图5,包括:

接收模块501,用于接收链接地址转换请求,将原始URL基于散列算法生成对应的哈希值;

转换模块502,用于判断内存缓存是否存在与哈希值匹配的短链接地址,若有则直接返回该短链接地址;否则,从短链接资源池503中取用一个资源,生成短链接地址,将新生成的短链接地址返回并保存至内存缓存;

其中,短链接资源池503为根据短链接地址资源需求对应的生成策略创建,生成策略包括选定的编码字符集和短链接地址对应的唯一标识字符串长度,短链接资源池通过改变唯一标识字符串长度来进行资源扩展。

可选地,本发明短链接地址生成系统还包括:

资源池管理模块504,用于对短链接资源池的资源消耗进行监测,包括:判断短链接资源池的资源消耗是否达到阈值,若是则启动资源消耗告警,并手动或者自动对短链接资源池进行资源扩展。

可选地,本发明短链接地址生成系统还包括:

短链接访问模块505,用于接收短链接访问请求,将接收的短链接地址映射到原始URL并跳转。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1