系统设计(面试准备)

设计可扩展的系统,相关知识点包含:

  • Rest vs RPC,参考链接:
    1. 知乎:既然有 HTTP 请求,为什么还要用 RPC 调用?
    2. EST vs. RPC: what problems are you trying to solve with your APIs?
    3. 几种分布式调用技术的比较 -- RPC VS REST
    4. Understanding RPC Vs REST For HTTP APIs
  • Http vs Websocket:
    1. websocket
    2. 知乎:WebSocket 是什么原理?为什么可以实现持久连接?
    3. 为什么不直接使用socket ,还要定义一个新的websocket 的呢?
  • 如何设计一个loader balancer
  • 什么是反向代理(reverse proxy)
  • TCP粘包与拆包
  • 数据库相关设计问题:
    1. Partitioning mysql partitioning
  • 关于系统扩展性的博客:http://highscalability.com/
  • code path performance 分析工具:flamegraphs
  • CDN (Content Delivery Network)
  • 网络抖动 (Network Jitter) network-performance-jitter
  • Thundering Herd Problem 操作系统中的解决方案 mutex and thundering herd
  • 分布式系统中的tracing
    1. opentracing
    2. zipkin
  • 缓存: Memcached vs Redis
  • producer and subscribe消息队列的设计

你可能感兴趣的:(系统设计(面试准备))