目录
1 大型网站特点
高并发
大数据量
分布式
2 分布式定义
多个节点协作
节点之间是互通的
3 分布式意义:
单机处理能力有限,cpu/内存/磁盘/网络
单机升级性价比低(单台机器性能越好,造假越高)
稳定性和可靠性考虑(如断电或者网络故障会导致整个服务不可用)
4 分布式的出发点
主要是根据冯诺依曼理论对计算器五要素进行扩展(存储器(内存,外存)/输入/输出/运算器/控制器)
5 分布式优点
容量增大,单机不能满足业务多机协同实现(主要是通过水平或者垂直拆分实现)
模块化,重用性更高,更符合领域模型/面向对象/高内聚性
提高系统可用性(更易于对关键业务做负载均衡),从而消除单点故障
因为软件服务模块被拆分,开发和发布速度可以并行而变得更快
系统扩展性更高
6 分布式缺点
架构设计变得复杂,特别是分布式事物
部署单个服务会比较快,但是如果一次部署需要多个服务,部署会变得复杂
系统的吞吐量会变大,但是响应时间会变长
运维复杂度会因为服务变多而变得很复杂
架构复杂导致学习曲线变大
测试和查错的复杂度增大
技术可以很多样,这会带来维护和运维的复杂度
管理分布式系统中的服务和调度变得困难和复杂
7 分布式面对的挑战(带来的问题)
分布式事务
服务治理复杂,注册服务较多导致注册服务纵横交错星罗棋布
数据库性能与高可用 单机性能与分库相关问题
负载均衡问题
全局时钟问题
故障独立性(某个模块不可用对其他节点的影响问题)
单点故障问题(某个节点不可用)