业界动态
java 短链接服务设计方案
2025-01-03 03:22

设计一个短链服务


让我们设计一个类似TinyURL的URL缩短服务。此服务将提供短别名重定向到长url。类似的服务:bit.ly, goo.gl, qlink.me等等。难度:简单

1. 为什么我们需要URL缩短?


    URL缩短用于为长URL创建更短的别名。我们称这些缩短的别名为“短链接”。当用户点击这些短链接时,会被重定向到原始URL。短链接在显示、打印、发送或推特时节省了大量空间。此外,用户不太可能键入较短的url。例如微博这种,这种字数有限制的,需要短链接这种服务.

缩短后的URL几乎是实际URL大小的三分之一。
URL缩短用于优化跨设备链接,跟踪单个链接以分析受众和活动表现,并隐藏关联的原始URL。
    如果你以前没有使用过tinyurl.com,请尝试创建一个新的缩短的URL,并花一些时间浏览他们提供的各种服务选项。这将对你理解本章有很大帮助。

在一些场景下,我们希望将长链接转变为短链接,进行发布.例如微博这种.我们可以通过发布的短链接访问到长链接指向的资源.
我们希望最终各种url访问的链路情况,例如广告投放的场景,这个时候,我们也可以通过短链接服务,来监控长链接指向资源的访问情况.

2.系统需求和目标


在面试开始的时候,一定需要和面试官进行沟通清楚他希望的系统是什么样子的.
    我们的网址缩短系统应符合下列要求:

功能需求:
给定一个URL,我们的服务应该生成一个更短和唯一的别名。这就是所谓的短链接。
当用户访问短链接时,我们的服务应该将他们重定向到原始链接。
用户应该有选择地为他们的URL选择一个自定义短链接。
链接将在标准的默认时间范围后过期。用户应该能够指定
过期时间。
非功能需求
系统应该具有高可用性。这是必需的,因为如果我们的服务关闭,所有的URL重定向都将开始失败.
URL重定向应该实时发生,延迟最小.
缩短的链接不应该是可猜测的(不可预测的).
扩展要求:
分析;例如,重定向发生了多少次?
其他服务也应该可以通过REST api访问我们的服务。

3.容量估计和约束条件


    我们的系统将需要大量的读操作。与新URL缩短相比,将会有很多重定向请求。让我们假设读和写的比例为100:1。
    流量估算:假设我们每个月将有5亿个新URL缩短,读/写比率为100:1,我们预计在同一时期会有500亿重定向:

100 * 5亿 = 500 亿 对于我们的系统,每秒查询(QPS)是多少?每秒缩短的新url: 500亿 /(30 * 14 * 60 * 60) = ~200URL/s 考虑到100:1的读/写比率,每秒url重定向将是: 100 * 200URL/s = 20K/s

    存储估计:假设我们将每个URL缩短请求(以及相关的缩短链接)存储5年。因为我们预计每个月将有5亿个新url,所以我们预计存储的对象总数将达到300亿:

5亿 * 5年 * 12月 = 300亿

    让我们假设每个存储的对象大约为500字节(这只是一个大概的估计,稍后我们将深入研究)。我们总共需要15TB的存储空间:

300亿 * 500byte = 15TB

    带宽估计:对于写请求,由于我们预计每秒200个新url,我们的服务的总数据将是每秒100KB:

200 * 500B = 100KB     对于读请求,由于我们期望每秒钟有20K的url重定向,所以我们的服务的总输出数据将是每秒10MB: 20K/s*500B = 10M

    缓存估计:如果我们想缓存一些经常被访问的热url,我们需要多少内存来存储它们?如果我们遵循80-20规则,即20%的url产生80%的流量,我们希望缓存这20%的热url。

    由于我们每秒有20K个请求,我们每天将收到17亿个请求:

    以上就是本篇文章【java 短链接服务设计方案】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/15015.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
手机单扬声器和双扬声器有什么区别?原来差别这么大手机扬声器「手机单扬声器和双扬声器有什么区别?原来差别这么大」
随着手机的普及和发展,音频体验成为消费者选择手机的重要因素之一。而在手机音频方面,单扬声器和双扬声器是常见的设计方案。那
手机维修知识大全维修手机「手机维修知识大全」
修理手机维修知识大全手机是高科技精密电子产品。工作原理、制造工艺、软件和硬件、测试、技术标准在所有的电器设备中是最复杂的
2k分辨率手机有哪些(2k分辨率的手机哪款性价比最高)
  关于《2K分辨率手机有哪些》的文章  随着科技的不断发展,手机已经成为了我们日常生活中不可或缺的一部分。而在手机的各种
红手指云手机苹果版(红雀浏览器) v1.0.23 iPhone版红手指云手机「红手指云手机苹果版(红雀浏览器) v1.0.23 iPhone版」
红手指手游专用虚拟手机是一款非常实用的手机挂机软件,在这里玩家随时随地离线挂机、自动帮助你闯关升级,非常强大的游戏挂机神
1手机2(一加11手机)
  《手机2》:探索科技与生活的无限可能  在当今数字化时代,智能手机无疑是我们生活中不可或缺的一部分。随着科技的飞速发
手机NFC是什么?怎么使用?手机nfc「手机NFC是什么?怎么使用?」
但很多人不知道的是,除了这三种无线通信技术外,很多智能手机里还有一种无线通信技术,那就是NFC。2004年,飞利浦半导体,诺基
360手机 官网(360手机官网入口)
  探索《360手机官网》:一站式手机技术与服务的平台  在当今数字化时代,手机已经成为我们日常生活中不可或缺的一部分。而
关于手机电池的冷知识:机身温度过高,会永久降低手机电池容量手机电量「关于手机电池的冷知识:机身温度过高,会永久降低手机电池容量」
相信大家在日常使用手机时,最关注的就是我们手机的电量还剩多少,尤其是现在我们一般出门都不带现金,直接通过手机进行支付,所
260手机助手(360手机助手官方版下载)
  《260手机助手》:一站式手机管理和服务的新选择  随着智能手机的普及,我们的生活越来越离不开手机。为了更好地管理和优
小米发布迄今最强被动散热系统,两倍于VC散热,原神满帧运行手机散热「小米发布迄今最强被动散热系统,两倍于VC散热,原神满帧运行」
你的手机“烫”吗? 玩局游戏,瞬间化身暖手宝?拍拍视频就过热,需要“冷静”一下才能继续使用!充电是很快,温度升的也很快…