高併發解決策略
OverView
高併發可以把它想像成路上的車流、排隊的人潮、河道中的水流,解決高併發的重點在於如何設計一個可以容納巨大的資料流量並且不會讓資料流阻塞或消失的系統。
高併發系統是一個相當複雜的問題,要想設計好一個高併發系統,我認為先回歸到整個系統的原點開始,會是一條相對容易理解的路。 一個簡單的系統基本上不外乎三個元素,Client、Server、Database,而高併發的解決策略就是依據這三個元素產生的5種組合而產生。 5種組合分別是,Client、Server、Database、Client-Server、Server-Database。
Client
- Cache
- Client-Side Computation
Client-Server
- DNS(Domain Name Server) polling\
- 缺點:不同伺服器的之間的資料共用問題需要解決。
Server
- Load balancing
- API Gateway
- Message Broker
Server-Database
- Cache
Database
- Data Normalization & Denormalization
- Table Partition
- Replication
- Database Sharding\
- Hashing
- Consist Hashing
- Read/Write Splitting