单机
单机部署含义:所有的业务全部写在一个项目中,部署服务到一台服务器上。
单机部署优点:方便开发、学习成本低,方便部署。
单机部署缺点:当一个模块出现问题,整个系统全部停止更新。
集群
集群部署含义:集群就是单机的“复制”,同一个业务,部署在多个服务器上(不同的服务器运行同样的代码,干同一件事。如果一台死机,另一台可以起作用,,不影响整个程序的运行)。
每台服务器并不是缺一不可,存在的作用主要是缓解并发压力何单点故障转移问题。
集群部署优点:系统扩展容易、易部署:无需改动任何的项目代码,只需要新增服务器部署相同的应用并配置好负载均衡,就可以很好的减轻随着业务增量带来的系统压力。
集群部署缺点:①每个节点负载相同每个具体业务的访问量可能相差很大,比如美团美食外卖的访问量一定大于鲜花外卖的访问量,这就造成了资源浪费。②业务发展到一定程度,无论再怎么增加节点,整个集群性能提升效果不明显。
负载均衡:将用户的请求,分配到多个功能相同的服务器上。其实就是任务分配(例如:生产车间中的多条相同功能的流水线)
分布式
分布式部署含义:把一个业务拆分成多个业务,然后部署到不同的服务器上,这就是分布式。
分布式部署优点:①可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当容易,开发效率大大提高。②系统更易于扩展,可以针对性的扩展某些服务。③服务的复用性更高。
分布式部署缺点:架构设计复杂;系统的吞吐量会变大,但是响应时间会变长;运维复杂度回因为服务变多而变得复杂;架构复杂导致学习曲线变大;测试和差错的复杂度增大。
集群和分布式的区别
- 集群:多台计算机干同样的事,多台服务器跑的都是一套完整的代码。
- 分布式:多台计算机干一件事,服务是分散部署在不同的机器上,多台服务器合起来跑的才是一套完整的代码。
- 相同点:分布式和集群都是需要有很多节点服务器通过网络协同工作完成整体的任务目标。
- 不同点:分布式是将业务系统进行拆分,即分布式的每一个节点都是实现不同的功能。而集群每个节点做的是同一件事情。
微服务
微服务含义:一种非常细粒度的垂直拆分,小到不可分割的分布式模块,小到一个服务只对应一个单一的功能,每个微服务都是由独立的小团队开发、测试、部署、上线,负责它的整个生命周期。