新系统设计

New steps of system design

  1. Understand problem and establish Design Scope
    1. ask clarify questions
    2. functional/non-functional requirement
    3. QPS estimation
  2. High-level design(draw a picture)
    1. API
    2. Database
  3. Low-level design(dive deep into each component)
  4. Summary(trade off)
    1. bottlenecks
    2. single point of failure
    3. replicas of the data if lost
    4. monitoring
    5. alert
    6. autofix/ticket
    7. follow up question
    8. trade off etc.

Redis vs Kafka

Difference Between Pub/Sub Messaging Systems

Redis Kafka
消息大小 较小 通过压缩和分层存储,最大1GB
息传输 基于推送,发布者在事件发生时向所有订阅者分发消息 基于拉取,发布者和订阅者共享一个公共消息队列,订阅者根据需要从中提取消息
消息保留 不保留消息 检索后保留消息
错误处理 在应用程序级别处理 Redis 异常,包括超时、客户端限制和内存缓冲容量。 强大错误处理,死信队列、事件重试和重定向。
并行性 不支持 支持,多个使用者可以同时检索同一条消息。
吞吐量 较高 高,异步读/写
延迟 分发较小的消息时延迟极低 低延迟,默认会进行数据复制
容错能力 默认不备份,可配置RDB或者AOF,存在少量数据丢失的风险 自动将分区备份到不同的代理

新系统设计

  1. 新系统设计(一) Design Nearby Friends
  2. 新系统设计(二) Design Monitoring and Alerting System

引用

  1. [Redis vs Kafka - Difference Between Pub/Sub Messaging System](https://aws.amazon.com/compare/the-difference-between-kafka-and-redis/#:~:text=Kafka generally has higher throughput,storage%2C which optimizes read speed.)
posted @ 2024-04-13 21:47  夜是故乡明  阅读(17)  评论(0编辑  收藏  举报