分布式架构
什么是分布式架构
单体
分布式集群
分布式的高可用
搭建服务集群,提高负载,避免单点故障
应对灾难,搭建异地灾备,预防地区因发生地震等自然灾害
接口限流以及服务降级。为防止过高的并发量造成服务器负载过高而出现故障
故障监控报警
服务的可伸缩性,易于水平扩张服务器数量。
使用缓存降低数据库压力
使用CDN等加速静态资源的访问
分布式能够给架构带来什么
应用服务器集群:
随着访问量的继续增加,单台应用服务器也无法满足需求了,我们就需要搭建应用服务器集群来对外提供服务了
数据负载-读写分离
主从数据库之间的数据需要同步
应用中需要根据业务进行对应数据源的选择
搜索引擎/Nosql负载-读写分离
Nosql/Elasticsearch等
数据量压力-拆表/拆库
据的垂直拆分和水平拆分
>=1000万,考虑拆表
>=1亿 ,考虑拆库
应用压力-应用拆分
应用拆分,按照领域模型将我们的用户、商品、交易拆分成多个子系统
中台实现的基础–》微服务
案例—电商系统
系统分层,微服务管理
案例—Nginx反向代理
务器层面分流
案例—WCF分布式
每层中的服务器,可水平扩展(集群),可纵向扩展(按系统/域/功能切分)
案例—微服务架构
哑铃架构
微服务分布式集成
前端后端双向扩展。
布式常见的坑—数据一致性
1、系统间的数据一致性。
2、系统内应用间的数据一致性。
3、应用内部对应多数据库的数据一致性,是个反模式,不要做通用方案。
4、一个数据库对应多个应用的数据一致性。
数据中台
分布式优点
分布式结构就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”。这些子系统能够独立运行在web容器中