0
点赞
收藏
分享

微信扫一扫

高并发实战总结01

一、短URL设计

高并发实战总结01 _服务器

   对于需要展示短 URL 的应用程序,由该应用调用短 URL 生成器生成短 URL,并将该短 URL 展示给用户,用户在浏览器中点击该短 URL 的时候,请求发送到短 URL 生成器(短 URL 生成器以 HTTP 服务器的方式对外提供服务,短 URL 域名指向短 URL 生成器),短 URL 生成器返回 HTTP 重定向响应,将用户请求重定向到最初的原始长 URL,浏览器访问长 URL 服务器,完成请求服务

高并发实战总结01 _重定向_02

高并发实战总结01 _服务器_03

1.生成短URL算法

高并发实战总结01 _生成器_04

高并发实战总结01 _生成器_05

高并发实战总结01 _服务器_06

高并发实战总结01 _重定向_07

高并发实战总结01 _生成器_08

高并发实战总结01 _服务器_09

   对于用户通过客户端请求访问短 URL 的过程(即输入短 URL,请求返回长 URL),请求通过负载均衡服务器发送到短 URL 服务器集群,短 URL 服务器首先到缓存服务器中查找是否有该短 URL,如果有,立即返回对应的长 URL,短 URL 生成服务器构造重定向响应返回给客户端应用。

   如果缓存没有用户请求访问的短 URL,短 URL 服务器将访问 HBase 短 URL 数据库服务器集群。如果数据库中存在该短 URL,短 URL 服务器会将该短 URL 写入缓存服务器集群,并构造重定向响应返回给客户端应用。如果 HBase 中没有该短 URL,短 URL 服务器将构造 404 响应返回给客户端应用,时序图如下


高并发实战总结01 _服务器_10

过期短 URL 清理服务器会每个月启动一次,将已经超过有效期(2 年)的 URL 数据删除,并将这些短 URL 追加写入到短 URL 预生成文件中。

为了保证系统高可用,Fuxi 的应用服务器、文件服务器、数据库服务器都采用集群部署方案,单个服务器故障不会影响 Fuxi 短 URL 的可用性。

对于 Fuxi 的高性能要求,80% 以上的访问请求将被设计为通过缓存返回。Redis 的缓存响应时间 1ms 左右,服务器端请求响应时间小于 3ms,满足 80% 请求小于 5ms 的性能目标。对于缓存没有命中的数据,通过 HBase 获取,HBase 平均响应时间 10ms,也可以满足设计目标中的性能指标。

高并发实战总结01 _服务器_11

举报

相关推荐

0 条评论