通常来讲,构建分布式系统的目的一是增长系统容量,二是提升系统的可用性。转换成技术方面,也就是宛成如下两件事。网络
说白了就是干两件事,一是提升总体架构的吞吐量,服务更多的并发和流量,二是提升系统的稳定性,让系统的可用性更高。架构
引入分布式系统,会引入一堆技术问题,须要从如下几个方面解决并发
服务治理。服务拆分、服务调用、服务发现,服务依赖,服务的关键度定义……服务治理的最大意义是须要把服务间的依赖关系、服务调用链,以及关键的服务给梳理出来,并对这些服务进行性能和可用性方面的管理。负载均衡
架构软件管理。服务之间有依赖,并且有兼容性问题,因此,总体服务所造成的架构须要有架构版本管理、总体架构的生命周期管理,以及对服务的编排、聚合、事务处理等服务调度功能。运维
DevOps。分布式系统能够更为快速地更新服务,可是对于服务的测试和部署都会是挑战。因此,还须要 DevOps 的全流程,其中包括环境构建、持续集成、持续部署等。分布式
自动化运维。有了 DevOps 后,咱们就能够对服务进行自动伸缩、故障迁移、配置管理、状态管理等一系列的自动化运维技术了。性能
资源调度管理。应用层的自动化运维须要基础层的调度支持,也就是云计算 IaaS 层的计算、存储、网络等资源调度、隔离和管理。测试
总体架构监控。若是没有一个好的监控系统,那么自动化运维和资源调度管理只可能成为一个泡影,由于监控系统是你的眼睛。没有眼睛,没有数据,就没法进行高效的运维。因此说,监控是很是重要的部分。这里的监控须要对三层系统(应用层、中间件层、基础层)进行监控。云计算
流量控制。最后是咱们的流量控制,负载均衡、服务路由、熔断、降级、限流等和流量相关的调度都会在这里,包括灰度发布之类的功能也在这里。3d
核心