转载大佬写的文章,学到了:
https://blog.csdn.net/xlgen157387/article/details/80026452
说下我自己之前想的思路:
1.我想到是使用某种映射算法,摘要算法等等。做这些,但是我说不上来用什么算法。
2.性能提升回答上,提到了用LRU。
所以自己的回答算是一个比价烂的回答吧。很烂。
下面附上整体的流程图:
1.每有一个转换请求过来,都是使用雪花算法 生成一个自增ID(64位字符串)。这个ID拼接到转换服务器域名后边,这样就成了一个短连接,是不是很奇妙?如:http://t.cn/asb
2.转换服务器,找到这个短连接对应的长连接,通过302重定向。
为什么用302?不用301
301是永久重定向,长连接转换为短连接之后,在存储这层讲是不会变的。所以挺符合301的语义。但是302的话,可以做一些统计使用。
长连接和短连接如何存储转换的?
我感觉用分布式key-value 加上LRU。比较好。
短连接->长连接映射 LRU 可以一定程度上提升性能。
没有找到的数据可以在数据里进行查找。(也可以本身就使用key-value存储这些映射。)