如何设计高并发、高可用的系统架构呢?有哪些重要的点?
按我的理解,主要包含下面几点,希望大家多补充。
1、负载均衡,
(1)对于各类节点,可以同时部署备用节点,结合KeepAlive,保证高可用;
(2)DNS 解析域名时,动态的返回不同的 IP 以实现服务机房的负载均衡;
(3)部署 OSPF,在 IP 路由的时候就对请求进行负载均衡,转发到不同的网关节点;
(4)部署 LVS 节点,将请求负载均衡的转发到 Nginx 反向代理集群
(5)部署 Nginx 反向代理集群,将用户请求负载均衡的转发到不同应用服务集群;
2、动静分离:部署 CDN 缓存静态资源
3、部署分布式缓存 Redis:对数据库数据进行缓存
4、部署分布式文件系统 HDFS:用于源站存储静态数据,多副本,高可用,磁盘负载均衡,按标签选择数据节点存放;
5、部署对象存储:存储海量小文件
6、部署分布式数据库:mongodb分片集群、mysql分库分表、TIDB、goldenDB等
7、部署 MQ 消息队列,对用户请求按实时响应要求进行分类处理;
8、容器化部署,将应用服务封装成微服务