2 Star 5 Fork 1

一切随心 / ShortLink 短链接系统

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

项目描述

SaaS 短链接系统,为企业和个人用户提供了一个高效、安全和可靠的短链接管理平台。该平台不仅简化了长链接的管理和分享过程,还提供了深入的分析和跟踪功能,用户可以管理和查看短链接的监控统计数据,从而实现更好的营销效果。

短链接(Short Link)是指将一个原始的长 URL(Uniform Resource Locator)通过特定的算法或服务转化为一个更短、易于记忆的 URL。短链接通常只包含几个字符,而原始的长 URL 可能会非常长。

短链接的原理非常简单,通过一个原始链接生成个相对短的链接,然后通过访问短链接跳转到原始链接。

如果更细节一些的话,那就是:

  1. 生成唯一标识符:当用户输入或提交一个长 URL 时,短链接服务会生成一个唯一的标识符或者短码。
  2. 将标识符与长 URL 关联:短链接服务将这个唯一标识符与用户提供的长 URL 关联起来,并将其保存在数据库或者其他持久化存储中。
  3. 创建短链接:将生成的唯一标识符加上短链接服务的域名作为前缀,构成一个短链接。
  4. 重定向:当用户访问该短链接时,短链接服务接收到请求后会根据唯一标识符查找关联的长 URL,然后将用户重定向到这个长 URL。
  5. 跟踪统计:一些短链接服务还会提供访问统计和分析功能,记录访问量、来源、地理位置等信息。

短链接经常出现在咱们日常生活中,大家总是能在某些活动节日里收到各种营销短信,里边就会出现短链接。帮助企业在营销活动中,识别用户行为、点击率等关键信息监控。

主要作用包括但不限于以下几个方面:

  • 缩短内容长度:短链接相对于长 URL 更短,可以节省字符空间,特别是在一些限制字符数的场合,如微博、动态、短信等。

  • 统计和分析:可以追踪短链接的访问情况,了解用户的行为和喜好。

  • 易于传播,提升用户体验:用户更容易记忆和分享短链接,增强了用户的体验。

  • 简化二维码:如果链接长度过长,生成的二维码图片过于复杂, 会降低二维码扫描的成功率,缩短后的网址二维码就会清晰容易识别

技术架构

在系统设计中,采用 JDK17 + SpringBoot3&SpringCloud 微服务架构,构建高并发、大数据量下仍然能提供高效可靠的短链接生成服务。

实现的功能点

技术亮点

  • 通过 Redisson 布隆过滤器判断生成的短链接唯一标识是否唯一,查询性能远胜分布式锁搭配查询数据库的方案。

  • 通过先更新数据库,再删除缓存的策略,尽可能的保证短链接跳转缓存与数据库之间的数据一致性。

  • 封装缓存不存在的情况下,查库构建短链接跳转缓存的逻辑,通过双重检查锁优化缓存更新或失效的场景下大量查库问题。

  • 使用双写方案,尽可能的提升短链接创建接口的性能。先写 Redis 缓存,然后再通过 MQ 异步落库,保证数据的最终一致性。

  • 使用 Redis Stream 或 RocketMQ 消息队列“削峰”特性,将短链接跳转接口中的跟踪统计逻辑异步化,以保障在海量请求并发访问短链接的场景下系统的可靠性和稳定性。

  • 通过系统本地内存 Map 将短链接的多次自增更新语句聚合归并成一个更新语句,从而大大的提高了短链接跟踪统计的效率。

  • 通过 Redis 分布式锁实现消息队列消费业务下的幂等功能,解决消息的重复消费问题,确保同一条消息在一定时间内只被消费一次,同时考虑了 Redis 内存占用过高、机器宕机等潜在问题。

空文件

简介

SaaS 短链接系统,为企业和个人用户提供了一个高效、安全和可靠的短链接管理平台。该平台不仅简化了长链接的管理和分享过程,还提供了深入的分析和跟踪功能,监控统计短链接的 pv、uv、uip 等数据,用户可以灵活管理和优化其链接,从而实现更好的营销效果和业务成果。 展开 收起
Java 等 3 种语言
取消

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/everything-is-what-you-want/short-link-bygj.git
git@gitee.com:everything-is-what-you-want/short-link-bygj.git
everything-is-what-you-want
short-link-bygj
ShortLink 短链接系统
master

搜索帮助