首页 / 短链 / 短链接服务的实现和源代码开放

专业的短链接生成工具

链接域名

短网址有效期

短链接服务的实现和源代码开放

更新时间:2025-5-3 19:36:09 作者:爱短链

【爱短链】免费网络营销软件短链接生成器,是为网络推广人员量身定制的高效推广工具,不仅可以缩短美化推广链接,提高点击率的同时,还不易引起反感,不容易被删除,也能够在QQ、微信等生态中完美兼容,短链接工具完全免费,大家可以点击上方生成工具,赶紧去试试哦!


半年前,疫情触底反弹,公司业务量不断增加,运营部门为方便短信.模板消息推送等渠道提出了将长链接压缩为短链接的功能需求。当时,为了快速推广,使用了一些知名的第三方短链压缩平台,存在一些问题:


收费贵


在某些情况下,微信等第三方平台的短链域名会被封杀


回源数据无法定制处理方案,无法打通整个业务链路进行数据分析和跟踪


基于这些问题,我决定开发一个短链接服务(长链接压缩到)。当时,微服务被同步拆分,许多内部微服务需要重新命名。小组里的一个女孩说最好用它Github吉祥物命名octopuscat(章鱼猫)去命名,但考虑到版权问题,去掉了她最喜欢的猫,剩下的章鱼,以便命名,octopus命名:


(项目描述也打错字,应该是"短链接")由于实现功能并不复杂,初版于2020-06月底发布。octopus实现参考了互联网上的几篇文章"实现短链服务"对于浏览量较高的文章,以下是实现原理.谈服务实现和部署架构。


基本原理


短链服务的核心是构建短链接与长链接的唯一映射关系,依靠高性能.排列组合数量大、破解难度大的映射标识生成算法。


构建唯一的映射关系

上图为作者收到的京东白条分期还款结果提醒短信,短信内容还包括短链https://3.cn/j/xxxxxxx,将其复制到浏览器中打开,发现客户端定向到长链https://jrmkt.jd.com/ptp/wl/vouchers.html?


activityId=${activityId}&uep_p=${uep_p}&uep_template_id=${uep_template_id}&uep_timestamp=${uep_timestamp},然后跳进一个H5.登录页面,然后跳入白条攻略页面。事实上,这里的长链可以压成多个短链。短链可以使用相同的域名或不同的

域名:

访问https://3.cn/j/xxxxxxx短链接的具体交互过程如下:

jrmkt.jd.com和3.cn查证都是doge东的域名


构建唯一的映射关系实际上是基于一个固定的长链接,映射到一个或多个可以动态生成的短链接。唯一的映射关系需要生成的


短链接来满足:

不易破解(使用数字,如数据库自增主键,作为唯一的映射标志,很容易被恶意调用)


不能重复(一个短链接只能对应一个长链接,当然一个长链接可以对应多个短链接)


长度尽可能短,因为第三方推送的内容一般有长度限制,如果短链太长,不易传输,推送内容字数有限(想象运营商短信内容最大长度为30字符长度,短链占20字符长度,只有10字符长度让运营同事玩,显然不合理)


如果链接太长,二维码中生成的内部"码点"它将非常密集,不利于客户端识别和传输,只是作者公司操作使用二维码场景,所以我们必须尽可能缩短链接的长度


一般来说,唯一映射关系中的映射标志需要像Hash算法生成的Hash代码具有独特性高、碰撞频率低、传输短、传输方便的特点。如何生成映射唯一标志?见下一节"压缩码生成算法"。


压缩码生成算法

这里的"压缩码"(compression_code)这是作者编造的名词。本文的意思是短链接URL路径部分(为了节省长度,除了协议和域名部分,短链URL只有第一段路径):


其中,协议部分基本固定https://(不建议从安全角度使用http://),短链域名可以购买尽可能长的短域名,如t.cn,然而,有远见的资本家通常会购买所有高质量的短域名,并提高价格,所以域名的长度基本上是一个难以控制的因素,其余的是压缩码部分。压缩码部分是可控的,但因为它是URL只要确保使用的字符不会被使用,URL编码转换,所以长度是人为可控的。假设我们使用26个字母的大小写和10个数字,N位压缩码的最大组合是:


N=4,组合数为62^4=14_776_336,147万接近148万


N=5,组合数为62^5=916_132_832,9.16亿左右


N=6,组合数为62^6=56_800_235_584,568亿左右


一般来说,组合数越小,破解难度越小,组合数越大,压缩码长度越大,常用长度为4.5、6,后期可回收或禁用无效长链,可满足绝大对数生产短链的应用场景。octopus实现时选择6位长度的压缩码,没有其他,因为有现成成熟的参考方案:62进制数刚好是字符0-9a-zA-Z组成,生成压缩码时,只需生成唯一的10进制数,然后根据这10进制数转换为62进制数。在这一点上,看起来计划如下:


虚线部分一般依赖高效低冲突的摘要算法,如MurmurHash,第(1)步的实线部分是生成一个全球唯一的10进制序列,常用的方法有:


数据库自增序列(如自增主键)


Snowflake算法


自研的类似UUID算法生成全球唯一的序列值


考虑到笔者之前的研究,Snowflake这里简单使用算法原理Snowflake算法生成自增序列,使用以下流程生成和分配压缩码:

由于运营部门对短链生成的批量不大,短链域名只有一个,简单地说,压缩操作直接消耗一个压缩码,不考虑不同的短链域名共享同一个压缩码,也不考虑压缩码的回收。


服务实现

短链服务主访入口一般为短链服务主访入口QPS极高,所以需要想尽一切办法减少入口的耗时,考虑可以使用Redis缓存承载入口流量,基础设施选择如下:


JDK1.8+:生产部署使用JDK11


MVC框架与容器:spring-boot-starter-webflux或者spring-cloud-gateway,必须使用Netty作为底层通信容器


内部RPC框架:Dubbo


服务注册及发现:Nacos


可选APM工具:Pinpoint


中间件依赖(因为以前整个服务集群都是云,低负载服务共用部分中间件):


MySQL8.x


Redis5.x普通主从或哨兵集群


RabbitMQ3.8.x集群,使用镜像队列


服务设计图如下:


最新版本考虑删除黑白名单中的拦截器,而不是基于布隆过滤器的实际拦截器。该服务使用了两个拦截器(尽管Filter翻译是一个过滤器,但由于习惯,以下被称为拦截器)链,由容器提供的拦截器组成的拦截器链主要负责服务安全.调用链跟踪功能,服务内部自定义拦截链主要实现请求参数分析.URL转换.重定向和异步事件记录等功能。


模块划分:

-(ROOT)octopus-octopus-contract-octopus-serveroctopus-contract模块必须脱离父亲POM管理方便单独迭代更新。


数据库设计


共使用了个表:


具体初始化DDL如下:


CREATEDATABASE`db_octopus`CHARSET'utf8mb4'COLLATE'utf8mb4_unic

爱短链平台各工具使用方法及功能汇总

短链接

活码系统

微信外链

抖音卡片

相关搜索

创建短链接

注册与登录 首先,访问爱短链的官方网站,点击右上角的“注册”按钮,填写相关信息完成注册。注册成功后,使用账号和密码登录到平台后台。登录过程简单快捷,支持微信扫码和手机验证码等多种方式。 获取长链接 在准备创建短链接之前,你需要先获取想要缩短的长链接。例如,在微信公众号后台,打开需要生成短链接的文章,将该文章的长链接复制到剪贴板中。 生成短链接 登录爱短链平台后,你会看到后台界面提供了多种功能选项。点击“短链”功能,将刚刚复制的长链接粘贴到指定的输入框中。爱短链还允许用户绑定自己的域名,使短链接更具个性化和辨识度。设置完成后,点击“生成短链接”按钮,平台会立即为你生成对应的短链接。 使用短链接 短链接生成后,你可以将其复制并粘贴到公众号推文中需要添加链接的位置,如正文内容、阅读原文链接、公众号菜单栏等。在正文中插入短链接时,可以搭配一些吸引人的引导语,如“点击下方链接查看更多精彩内容”或“详情请戳[短链接]”等,以提高用户的点击率。

爱短链

2025-02-20 14:33:23

抖音链接跳转微信

抖音链接跳转微信不仅为品牌营销和个人推广提供了更多可能性,也为用户带来了更加便捷、高效的信息获取和互动体验。在未来,随着社交电商的蓬勃发展和用户需求的不断变化,抖音链接跳转微信将成为越来越多用户的首选引流方式,助力品牌营销和个人推广迈向新的高度。

爱短链

2025-01-15 16:13:31

活码二维码生成器在线

活码二维码生成器在线工具如爱短链等,操作简单,无需复杂的技术知识。用户只需在网页上打开相应的生成器平台,按照提示进行操作即可。通常,用户需要输入想要关联的信息,如网址、文本、图片、文件等,然后选择一些个性化设置,即可快速生成一个活码二维码。

爱短链

2025-01-15 16:13:31

生成短链接的工具

长链接的繁琐与不便愈发凸显,而一款优秀的短链接生成工具则成为了信息高效传播的关键。爱短链,正是这样一款脱颖而出的卓越工具,为你带来前所未有的链接管理体验。

爱短链

2025-01-15 16:13:31

跳转卡片在线生成

爱短链平台提供高效的跳转卡片在线生成功能,用户可轻松定制卡片模板,填入链接与信息,即刻生成吸引眼球的跳转卡片,适用于社交媒体、营销活动等场景,助力提升点击率与营销效果,实现精准引流。

爱短链

2025-01-15 16:13:31

最通俗易懂的短链接原理讲解

看了看,想要了解短链接算法的伙伴还是蛮多的,那么今天爱短链小编就帮大家带来详细的介绍。

爱短链

2022-05-30 15:20:34

微信活码的功能特点介绍

微信活码是营销推广行业必备的一个神器,它不但可以帮助我们更好的裂变,还能降低用户流失率。

爱短链

2022-05-19 12:37:01

营销推广必备的5个效率小工具

营销推广不仅要靠扎实的专业知识,在工具使用方面也是非常重要,没有好的工具就算自己有多么厉害的技能也会事倍功半。

爱短链

2022-05-18 14:08:22

用户喜欢

缩短链接:链接在线一键秒缩短

缩短链接是一种将长网址转换为短网址的服务,通常用于社交媒体、短信、电子邮件等场合,以便更简洁地分享链接。以下是一些在线一键缩短链接的方法和工具:

爱短链

2025-02-19 10:16:16

网址简化:1秒简化网址

网址简化,也称为URL缩短,是指将冗长的网址转换为简短、易记的链接。以下是几种快速简化网址的方法:

爱短链

2025-02-19 10:16:16

网站链接太长怎么缩短

当遇到网站链接太长需要缩短的情况时,可以采取以下几种方法:

爱短链

2025-02-18 16:04:47

h5页面跳转微信小程序

H5页面跳转微信小程序的需求普遍存在,因为微信小程序只能在微信内部访问,而H5页面可以在任何浏览器中访问,因此需要通过跳转来实现两者之间的衔接。以下是H5页面跳转微信小程序的主要方式:

爱短链

2025-02-18 16:04:46

链接缩短,教程分享,一招把链接缩短

链接缩短是一个方便用户分享和访问长链接的有效方法。以下是一招把链接缩短的详细教程:

爱短链

2025-02-18 14:15:53

微信卡片链接生成

微信卡片链接是指在微信中分享的一个特定格式的链接,通过该链接可以展示网页或内容的相关信息,并以卡片的形式呈现给接收者。以下是生成微信卡片链接的详细步骤:

爱短链

2025-02-18 09:57:08

微信活码免费在线制作

微信活码是一种可以智能切换的二维码,通常用于解决微信群扫码人数限制、微信号无限加好友、多渠道引流等问题。以下是一些免费在线制作微信活码的方法和步骤:

爱短链

2025-02-18 09:57:08

微信群活码,免费生成,永久生效

微信群二维码本身具有7天的有效期,微信官方并未提供直接生成永久有效微信群二维码的功能。但可以通过一些第三方工具实现类似永久有效的效果,以下是几种免费生成微信群活码并尽量保持其长期有效的方法:

爱短链

2025-02-18 09:57:08

全平台跨域跳转微信工具,助力企业全渠道获客

爱发布客服-依依

公网安备32010402001342号

苏ICP备2021048188号-3

© 爱短链 2019 | 南京推吧网络科技有限公司版权所有

客服