首页 > 其他分享 >0 概论

0 概论

时间:2023-02-04 11:00:24浏览次数:32  
标签:存储 数据库 系统 面试 QPS 设计 概论

系统设计面试

1 系统设计面试官想要考察什么?

  1. 系统架构设计的能力

  2. 知识的广度与深度

  3. 综合能力 (开放性题目, 沟通能力, 系统抽象能力, 逻辑思维能力)

定级别是通过系统设计来的

2 如何准备系统设计

  1. 知识储备

可用性, 可扩展性, 性能, 安全性, 大数据量, 高并发, 分布式设计

  1. 多刷题和模拟面试

采用模拟面试的方式, 练习常见的系统设计题

  1. 保持好奇心

多思考功能是怎么实现的

3 4S分析法与课程介绍

有两点非常重要, 一点是技术问题, 一点说话要有条理, 不能想到什么说什么

1 Scenario 场景: 需要设计哪些功能, 设计得多牛

ASK: Features/QPS/DAU/Interfaces

  • 询问面试官:

    • 需要设计哪些功能?

    • 需要承受多大的访问量? QPS?

2 Service 服务: 将大服务拆分成为小服务

Split/Application/Module

3 Storage 存储: 数据如何存储和访问

系统 = 服务 + 数据存储

  • 为每一个 Service 选择存储结构

    • 数据库系统 Database

      • 关系型: MySQL

      • 非关系型: Redis, ElasticSearch, HBase, MongoDB

    • 文件系统 File System

      • 图片, 视频
    • 缓存系统 Cache

      • 不需要支持持久化的数据

      • 效率高, 内存级别的访问速度

  • Schema 细化表结构

常用数据存储系统 QPS:

  • MySQL / PosgreSQL 等 SQL 数据库的性能: 1k

  • MongoDB / Cassandra 等硬盘型 NoSQL 数据库性能: 10k QPS

  • Redis / Memcached 等内存型 NoSQL 数据库性能: 100k ~ 1M

  • 以上数据根据机器性能和硬盘数量及硬盘读写速度会有区别

4 Scale: 升级: 解决缺陷, 处理可能遇到的问题

Sharding/Optimize/Special Case

  • 第一步: Optimize

    • 解决设计缺陷

    • 更多功能设计

    • 一些特殊情况

  • 第二部 Maintenance

    • 鲁棒性 Robust

      • 如果有一台服务器挂了/数据库挂了怎么办
    • 扩展性

      • 如果有流量暴增, 如何扩展

4 如何准备大厂面试 & 面试经验分享

  • 花时间看面试题, 足够的重视

  • 不能闭门造车, 多看别人的面试经验 (基本每个人的题目都差不多)

  • 多刷题

  • 多尝试, 多面试, 大胆尝试积累实战经验

  • 多总结, 多反思, 自己的差距和不足点

  • 有针对性的去准备, 每个大厂的风格不一样

5 系统设计面试的评分标准

  • 可行解 25%

  • 特定问题 20%

  • 分析问题 25%

  • 权衡 15%

  • 知识储备 15%

系统设计没有标准答案, 给出一个可行解即可, 给出多个可行解那么分数会更高.

标签:存储,数据库,系统,面试,QPS,设计,概论
From: https://www.cnblogs.com/geraldkohn/p/17091083.html

相关文章

  • 一.概论
    1.发展历史古代密码时代机械密码时代(第一次世界大战,无限电报的广播通信,加密主要是通过字母的替换和移位。第二次世界大战加密由单表替换发展为多表替换。)信......
  • 1-统计学习及监督学习概论
    title:1-统计学习及监督学习概论date:2021-01-1810:58:30permalink:/pages/a554b0/......
  • 1.计算机系统概论
    计算机组成原理讲解:数字计算机硬件系统的逻辑实现一般原理讲授内容基本部件的结构和组织方式基本运算的操作原理基本部件和单元的设计思想文章目录​​计算机组成原理​​​......
  • 复现经典:《统计学习方法》第13章 无监督学习概论
    第13章无监督学习概论本文是李航老师的《统计学习方法》一书的代码复现。作者:黄海广备注:代码都可以在github中下载。我将陆续将代码发布在公众号“机器学习初学者”,可以在......
  • 操作系统-概论
    定义:控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件 1.1......
  • 计算机网络-概论
    1.1计算机网络概念一个将分散的、具有独立功能的计算机系统,通过通信设备和线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。计算机网络是互联的、自治的计......
  • 计算机科学概论与程序设计基础第十五周学习总结
    学号《计算机基础与程序设计》课程总结第一周学习总结https://www.cnblogs.com/ouyangmurong/p/16655008.html    第二周学习总结   第三周学习总结......
  • 1、oracle概论
    它是一个关系型数据库,即数据使用二维表存储的。 Oracle实例:指的是操作数据的一组进程,一个实例只能操作一个数据库,且一个数据库一般只有一个实例对它进行操作。S......
  • 计算机科学概论与程序设计基础第十三周学习总结
    作业课程https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13作业目标《C语言程序设计》......
  • 数据库系统概论练习2
    一、填空题(每空1分,共10分) 数据模型的三要素包括:数据结构、 数据操纵、完整性约束。数据库系统的三级模式和二级映像中外模式/模式映像概念模型是对信息世界的建模,其......