【技术实现步骤摘要】
一种高并发短链接生成与解析方法
[0001]本专利技术涉及营销领域对于长链接转短链接的需求
。
具体来说,它涉及一种用于高并发环境下生成和解析短链接的方法
。
这种方法能够在分布式架构中实现高并发地生成和访问短链接
。
技术介绍
[0002]目前,有三种常见的短链接生成技术,分别为基于哈希算法
、
基于自增序列和基于随机码
。
[0003]1)
基于自增序列:通过将长链接与自增
ID
序列进行映射生成短链接
。
此方法可以保证链接唯一性,但存在安全隐患和被枚举的风险
。
[0004]2)
基于哈希算法:运用哈希算法将长链接转化为一个短字符串或数字,从而生成短链接
。
此方法操作简单
、
速度快
。
但由于哈希算法的性质,不同的长链接可能会生成相同的短链接,从而导致链接的冲突问题,可能会导致链接的重复或覆盖
。
[0005]3)
基于随机码:通过生成一段随机码作为短链接,如
UUID、
随机字符串等
。
为保证链接的唯一性和安全性,随机码需要有足够的长度和复杂性,存在长度较长
、
存储空间占用较大的问题,且生成过程较为耗时
。
[0006]如上所述,这些短链接生成技术都存在一些缺点
。
基于自增序列的短链接存在安全隐患和被枚举的风险;基 ...
【技术保护点】
【技术特征摘要】
1.
一种高并发短链接生成与解析方法,其特征在于:所述方法可实现实时生成海量短链接,并将其持久化存储,具体步骤如下:步骤一
、
搭建高可用的
RabbitMQ
作为分布式消息队列;步骤二
、
搭建高可用的
MySQL
集群作为数据存储服务;步骤三
、
搭建高可用的
Redis Stack
服务集群作为短链接缓存和递增序列生成器;步骤四
、
调用生成短链接接口,传入长链接和业务编号,并完成验签;步骤五
、
生成随机数,使用
Redis
的
INCRBY
命令结合生成的随机数获取递增序列;步骤六
、
将步骤五中生成的递增序列值转换为
62
进制短链接码,并使用布谷鸟过滤器判断短链接码是否存在,若短链接码已经存在,则返回步骤五重新生成递增序列,直到生成一个新的
、
不存在于布谷鸟过滤器中的短链接码;若短链接码不存在,则进入步骤七;步骤七
、
将步骤六中生成的短链接码保存至布谷鸟过滤器中,以便在后续进行判重;步骤八
、
将步骤六中生成的短链接码与步骤四中传入的长链接映射,采用
Hash
结构存入
Redis
,并设定过期时间;步骤九
、
将步骤八中短链接码与长链接映射信息发送到
RabbitMQ
消息队列中,在
RabbitMQ
消息队列中,能够将短链接码和长链接封装成一个消息,以便在后续进行异步处理;步骤十
、
订阅
RabbitMQ
消息,解析消息将消息中的短链接码和长链接提取出来,并将其存储到
MySQL
中,并将长短链接映射信息存入
MySQL
中
。2.
根据权利要求1所述的一种高并发短链接生成与解析方法,其特征在于:高并发短链接访问的具体步骤如下:步骤
1、
在使用短链接访问长链接时,用户通过在浏览器中输入短链接地址,或者点击包含短链接地址的页面或通过短信方式进行访问;步骤
2、
在使用短链接访问长链接时,服务器需要从短链接中提取出短链接码,采用白名单
+
正则匹配机制,如果短链接地址不在路径白名单内且符合正则表达式的要求,则会被提取短链接码;步骤
3、
使用布谷鸟过滤器,判断短链接码是否存在;如果查询结果为存在,则说明该短链接有效,则进行到步骤4;如果查询结果为不存在,则说明该短链接无效,服...
【专利技术属性】
技术研发人员:李亚运,谢汶达,季益亮,陈云涛,赵音龙,陈丰生,
申请(专利权)人:海纳致远数字科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。