本文主要是介绍设计 Pastebin.com (或者 Bit.ly),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、需求沟通
1、用例
1、用户输入一些文本,然后得到一个随机生成的链接
- 过期时间
- 默认为永不过期
- 可选设置为一定时间过期
2、用户输入粘贴板中的 url,查看内容
3、用户是匿名访问的
4、服务需要能够对页面进行跟踪分析
- 月访问量统计
5、服务将过期的内容删除
6、服务有着高可用性
2、算数
二、答案
1、概要设计
2、扩展设计
3、关键点总结
1、Write API
来了一段文本之后,先确定数据库中是否有。
- 如果要是有的话,那么只更新数据库中的时间。
- 如果没有的话,生成短链接,将生成的短链接和时间同时写入数据库中。
2、Read API
用户拿到短链接,找对应的文本。
3、Analytics
对页面进行跟踪分析,月访问量的统计,并将过期的内容删除。
三、其他知识点
1、RPC
RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。是比Http更牢靠,但是更复杂代价更高的一种通信服务。
这篇关于设计 Pastebin.com (或者 Bit.ly)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!