System Design
文章平均质量分 63
Sengo_1993
你多走了许多弯路,却看到了更多的风景。你觉得一切为时已晚,却恰是刚刚好的开始。
展开
-
[System Design] How Redis expires keys
How Redis expires keysRedis keys are expired in two ways: a passive way, and an active way.A key is passively expired simply when some client tries to access it, and the key is found to be timed out.Of course this is not enough as there are expired keys原创 2021-01-25 14:30:25 · 174 阅读 · 0 评论 -
[System Design] Message Queue
Message Queue为什么使用消息队列https://aws.amazon.com/message-queue/benefits/解耦Message queues remove dependencies between components and significantly simplify the coding of decoupled applications. Software components aren’t weighed down with communications cod原创 2020-11-14 15:32:34 · 307 阅读 · 0 评论 -
[System Design] CAP Theorem, AP,CP
CAP 理论在分布式系统里面,CAP肯定是必须知道的,对于系统设计也会经常遇到partition的问题,某个service被隔离了,这时候就得用上CAP理论。CAP 定义PPartition tolerance: The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodesP就是在分布式环境中,由于网络的问原创 2020-11-06 14:32:34 · 185 阅读 · 0 评论 -
[System Design] Recommendation System - Collaborative Filtering
推荐算法Reference: youtube.com/watch?v=3ecNC-So0r4]原创 2020-10-28 01:05:30 · 230 阅读 · 0 评论 -
[System Design] Booking System
Ticket Booking SystemAnalysisService根据需求的功能,我们分成以下几个servicesAccountServiceSearchServiceDetailServiceBookingServicePaymentServiceNotifyServiceCancelServiceDatabaseUser DBInventory Grid DBOrder DBUser db里面可以有其他用户相关的表,比如一个User可以有多个email,多原创 2020-10-26 14:52:09 · 537 阅读 · 0 评论 -
[System Design] Log System
Distributed Log SystemHow to have enough information in the log for you to searchRequest - Correction idResponse - Unique idStandard log format, or have a service to transfer the logs into a standard formatRequest contextIssuesAvoid PII data (Pe原创 2020-10-26 07:46:17 · 283 阅读 · 0 评论 -
[System Design] Load Balancer 和 Reverse Proxy
Load Balancer前言一致性哈希和load balancer系统设计中有一定关连,系统设计中可以一起提。一致性哈希在另外一篇文章中写,本文不提。Load balancer可以把请求分配到合适的worker上去处理。 Load balancer 并不是路由到某个具体的api,所以概览上load balancer 和api gateway是不一样的。LB和reverse proxy概念上也是不一样的。Load BalancerLoad Balancer的优点Preventing requ原创 2020-10-25 07:58:54 · 456 阅读 · 2 评论 -
[System Design] Consistent Hashing
Consistent Hashing 一致性哈希算法无论是数据库scale up, 负载均衡算法等只要是分布数据、请求又能让系统知道该去哪里找,就能用到一致性哈希算法。例子:我们有一个数据库用来存储用户数据。随着时间增长,数据量太大,我们希望有更多台数据库例如5台来平均的分担存储的数据。那么,我们的系统或者load balancer怎么知道具体的某个数据是存在哪台数据库呢?我们可以通过简单的mod算法,比如说user_id % 5的结果来选择该把数据存储在哪台数据库,后面读的时候也通过%5来找到对应的原创 2020-10-20 13:53:48 · 204 阅读 · 0 评论 -
[System Design] High Level Workflow
System Design整个的High Level流程以及需要掌握的知识4S Analysis1. Scenario 场景需要设计哪些功能,有哪些用例,有多大的访问量等。2. Service 服务将整个系统拆分成多个小系统,各司其职。3. Storage 存储数据应该如何存储和访问。4. Scale 升级遇到瓶颈如何升级,未来可能遇到的问题和解决方案。Scenario列出所有需要设计的功能选出核心功能,因为时间太多不可能实现所有功能,优先实现核心功能讨论并发用户/请求的数量 D原创 2020-10-20 12:58:09 · 325 阅读 · 0 评论 -
[System Design] Master Slave Replication Architecture
Master Slave Replication系统设计中Replica是必不可少的,主从复制是常用的一种实现replica的方式。一句话概括什么是Master Slave Replication: Master数据源的数据异步的备份到Slaves数据源。无论在Mysql, Redis, MongoDB 等类型数据存储中都是存在直接可使用的主从复制,通过配置就可以直接使用,这里不提。MySQL Master-Slave Replication Architecture所有Master的数据库的原创 2020-10-20 11:48:22 · 306 阅读 · 0 评论