摘要:
1 基本的知识 queue 绑定 exchange 有三种模式 fanout -- exchange 将消息发送到所有的 queue。 direct -- exchange 根据消息的 routing key,选择 routing key 相同的 queue,将消息发送到符合条件的 queue 中, 阅读全文
posted @ 2023-02-04 14:26
kohn
阅读(772)
评论(0)
推荐(0)
摘要:
操作系统面经 操作系统基础 系统调用 根据进程访问资源的特点,我们可以把进程在系统上的运行分为两个级别: 用户态(user mode) : 用户态运行的进程可以直接读取用户程序的数据。 系统态(kernel mode):可以简单的理解系统态运行的进程或程序几乎可以访问计算机的任何资源,不受限制。 说 阅读全文
posted @ 2023-02-04 14:24
kohn
阅读(34)
评论(0)
推荐(0)
摘要:
1 数据库基础知识 1.1 数据库三大范式 第一范式:每一个列都不可拆分 第二范式:在第一范式的基础上,非主键完全依赖于主键,而不能是依赖于主键的一部分。 第三范式:在第二范式的基础上,非主键完全直接依赖于主键,而不能传递依赖于主键。 1.2 MySQL 的 binlog 有几种录入格式 state 阅读全文
posted @ 2023-02-04 14:21
kohn
阅读(39)
评论(0)
推荐(0)
摘要:
1 持久化 1.1 RDB fork 一个子线程来将数据进行持久化,使用写时复制的技术,如果主线程要对数据进行修改,那么就复制一份,交给主线程修改,原来的那一份交给子线程来复制到 RDB 文件中。 也可以直接使用主进程来进行持久化,在持久化期间 Redis 挂起。 优点:数据集较大时,启动效率比 A 阅读全文
posted @ 2023-02-04 14:20
kohn
阅读(102)
评论(0)
推荐(0)
摘要:
视频流系统设计 设计 Youtube Scenario 月活跃用户(MAU): 20亿 日活跃用户(DAU): 1.5亿 每天观看视频数量: 50亿 每分钟上传视频时长: 500个小时 用户平均观看时间: 40分钟 Service 上传服务 Upload Service 缩略图服务 Thumb Se 阅读全文
posted @ 2023-02-04 10:58
kohn
阅读(65)
评论(0)
推荐(0)
摘要:
聊天系统设计 设计微信: Work Solution Real-time Service Online Status: Pull vs Push 相关设计题: Design Facebook Messenger Design WhatsApp Design Facebook Live Comment 阅读全文
posted @ 2023-02-04 10:58
kohn
阅读(68)
评论(0)
推荐(0)
摘要:
协同编辑系统设计 Scenario 协同合作 Service + Storage 实时系统 (real time application) 游戏 聊天 (wechat, whatsapp, messager) 股票交易 (robinhood, webull) 协同合作 (google docs) 实 阅读全文
posted @ 2023-02-04 10:57
kohn
阅读(49)
评论(0)
推荐(0)
摘要:
短网址设计 Scenario 需求 Apply Short URL graph LR A(用户) --> |http://www.jiuzhang.com| B(http://bit.ly) B --> |http://bit.ly/1UloQB6| A 根据 Short URL 还原 Long U 阅读全文
posted @ 2023-02-04 10:57
kohn
阅读(88)
评论(0)
推荐(0)
摘要:
用户系统设计 4S Scenario 注册, 登录, 查询, 用户信息修改 支持 100M DAU 注册, 登录, 信息修改 QPS 约 100M * 0.1 * 3 / 86400 = 300 0.1 = 平均每个用户每天登录 + 注册 + 信息修改 查询 QPS 约 100M * 100 * 3 阅读全文
posted @ 2023-02-04 10:57
kohn
阅读(43)
评论(0)
推荐(0)
摘要:
新鲜事系统设计 Twitter, 朋友圈 新鲜事系统的核心因素? 关注与被关注, 每个人看到的新鲜事都是不同的. Pull Model 算法: 在用户查看 New Feed 时, 获取每个好友的前 100 条 Tweets, 合并出前 100 条 News Feed. (K 路归并算法) 复杂度分析 阅读全文
posted @ 2023-02-04 10:57
kohn
阅读(71)
评论(0)
推荐(0)
摘要:
实操-秒杀系统与订票系统设计 1 Scenario (场景) 限量出售, 售完为止. QPS 分析: 平均每秒 1000 人访问, 秒杀时每秒 10w 人访问, QPS 100 倍增加. 流程如下: graph LR A((用户)) --> |"购买"| B(创建订单) B --> K{"库存已无? 阅读全文
posted @ 2023-02-04 10:57
kohn
阅读(61)
评论(0)
推荐(0)
摘要:
MapReduce 框架 Input Split Map 传输整理 Reduce Output Map Reduce 函数的输入输出接口? Map Reduce 函数的输入输出接口必须是 key, value 形式. graph TB A(file) --> |"分片"| B(Map) A --> 阅读全文
posted @ 2023-02-04 10:56
kohn
阅读(14)
评论(0)
推荐(0)
摘要:
RowKey 设计 RowKey 概念 HBase 中 RowKey 可以唯一标识一行记录, 在 HBase 查询的时候有以下几种方式: 通过 Get 方式, 指定 RowKey 获取唯一一行记录 通过 Scan 方式, 设置 startRow 和 stopRow 参数进行范围匹配 全表扫描, 直接 阅读全文
posted @ 2023-02-04 10:56
kohn
阅读(29)
评论(0)
推荐(0)
摘要:
BigTable 技术选型: | NoSQL Database | Company | | | | | BigTable | Google | | HBase | Yahoo(Open source of BigTable) | | Cassandra | Facebook | | DynamoDB 阅读全文
posted @ 2023-02-04 10:56
kohn
阅读(19)
评论(0)
推荐(0)
摘要:
分布式文件系统 (GFS) 设计流程 文件位置 一个 chunk 备份到三个 chunk server 中 | | | Master | | | | filename | | chunk-01 -> CS1, CS3, CS4 | | chunk-02 -> CS2, CS3, CS5 | | ch 阅读全文
posted @ 2023-02-04 10:56
kohn
阅读(31)
评论(0)
推荐(0)
摘要:
UUID的版本 UUID具有多个版本,每个版本的算法不同,应用范围也不同。 首先是一个特例--Nil UUID--通常我们不会用到它,它是由全为0的数字组成,如下: 00000000-0000-0000-0000-000000000000 UUID Version 1: 基于时间的UUID 基于时间 阅读全文
posted @ 2023-02-04 10:55
kohn
阅读(48)
评论(0)
推荐(0)
摘要:
数据库扩展 QPS, 单点故障使得数据库必须要进行扩展. 扩展只需要做两件事情, 数据拆分 Sharding, 数据复制 Replica. 数据拆分可以分摊写流量, 数据复制可以做到读写分离. 数据库拆分 Sharding 纵向拆分 Vertical Sharding 将一个表拆分成为多个表, 每个 阅读全文
posted @ 2023-02-04 10:55
kohn
阅读(18)
评论(0)
推荐(0)
摘要:
SQL vs NoSQL 怎么选择 是否需要支持事务? 是: SQL + 1 否: NoSQL + 1 是否需要丰富的 SQL query? 是: SQL + 1 否: NoSQL + 1 是否想偷懒, 因为SQL 实现往往更简单? 是, SQL 实现比 NoSQL 简单很多: SQL + 1 否, 阅读全文
posted @ 2023-02-04 10:55
kohn
阅读(20)
评论(0)
推荐(0)
摘要:
如何设计限流器 阅读全文
posted @ 2023-02-04 10:55
kohn
阅读(22)
评论(0)
推荐(0)
摘要:
系统设计面试 1 系统设计面试官想要考察什么? 系统架构设计的能力 知识的广度与深度 综合能力 (开放性题目, 沟通能力, 系统抽象能力, 逻辑思维能力) 定级别是通过系统设计来的 2 如何准备系统设计 知识储备 可用性, 可扩展性, 性能, 安全性, 大数据量, 高并发, 分布式设计 多刷题和模拟 阅读全文
posted @ 2023-02-04 10:55
kohn
阅读(36)
评论(0)
推荐(0)