系统设计与实现

6.搭建大规模可扩展系统(一)_哔哩哔哩_bilibili

短网址系统设计_哔哩哔哩_bilibili

一.短url设计

后端面试之系统设计-短网址(Short URL)服务怎么设计?_码农在新加坡的博客-CSDN博客_短网址服务

系统设计(五) Design Tiny URL System_哔哩哔哩_bilibili

Docs

1.理解题目

 

 2.暴力解

我们对延迟要求高,并且存储空间占用较少,所以采用延迟删除的策略。为什么?

延迟删除是比如lru的那种策略,不满足条件就随时删除了,不会一次性消耗大量cpu(定期删除),同时也节省内存空间。

 

 

 

3.优化解

a.吞吐量

负载均衡 当客户端访问某台设备的数据时,首先发送的请求先到一台中间服务器,并通过中间服务器在服务器集群中平均分摊到其他服务器中,因此,当用户每次所发送的请求都将会保证服务器集群中的设备均与平摊,以此来分担服务器的压力 一文带你读懂Nginx的负载均衡 - 知乎

 b.延迟优化

存储介质:

mysql数据存在磁盘里,redis数据存在缓存里,更快。

构建索引的意思是说,按照什么主键查询。

分片技术/一致性哈希:Redis数据存储 分片机制分析 - 知乎

MySQL与Redis的区别---详细!_新建先生的威宁剑的博客-CSDN博客_mysql和redis

使用缓存层:加速读写,因为缓存通常是全内存的。降低后端的负载。缓存一些复杂计算或者耗时得出的结果可以降低后端系统对CPU、IO、线程这些资源的需求,让系统运行在一个相对资源健康的环境。

深入理解分布式缓存设计 - 知乎

 

二.timeline feed系统设计

1.整体

 

读放大写放大

读放大,写放大,空间放大

 

2.feed的发布与订阅优化

核心思想:feed是按照写放大的思路来做的,当粉丝数很多的时候,写入时间复杂度高。采用推拉结合的方式,粉丝数很多的作者,采用读放大的方式,直接从作者发件箱读取。

3.item server优化

 

缓存 

 旁路缓存

缓存详解:穿透型缓存与旁路型缓存,缓存穿透,雪崩与击穿 - 链滴

三.即使通讯系统

四.秒杀系统

高并发下“秒杀架构”如何设计?内容涵盖:三高架构面临的问题、线程池、连接池、分库分表、nio、netty、redis、kafka、负载均衡、微服务划分等架构问题_哔哩哔哩_bilibili

https://www.youtube.com/watch?v=aeE_PqZBadg&list=PL5d0qARooeQh-XYm1Jex96TYHDm_sRojT&index=1

高并发,高可用,高性能。

https://www.teqng.com/2021/09/07/%E9%9D%A2%E9%9C%B8%EF%BC%9A%E7%A7%92%E6%9D%80%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E8%AE%BE%E8%AE%A1%EF%BC%9F/

低延迟方案总结

Docs

缓存和数据库一致性问题

缓存详解:穿透型缓存与旁路型缓存,缓存穿透,雪崩与击穿 - 链滴

缓存和数据库一致性问题,看这篇就够了 - 知乎

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值