集群、分布式、微服务的区别与联系
一. 集群
集群:同一个应用部署在多个服务器上,然后使用负载均衡将用户请求分发至集群节点之中。
需要解决的问题:集群节点之间的 Session 共享。
二. 分布式
分布式:将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。分布式是为了解决单台机器性能瓶颈,将系统进行拆分,使得处理负载分散到各个节点中,提升整个服务可用性。
三. 微服务
微服务同样涉及系统的拆分,但是它与分布式的核心区别就是拆分的目的不一样。微服务让各个模块拆分开来,不会被互相影响,比如模块的升级或者出现 BUG 或者是重构等等都不要影响到其他模块,微服务它是可以在一台机器上部署;
四. 总结
分布式和微服务都涉及系统的拆分,但是它们拆分的目的并不相同,分布式是为了解决单一服务器性能瓶颈而进行的拆分,拆分后可以非常方便地对关键服务进行集群扩容;而微服务更像从系统业务设计层面的拆分,目的是降低系统的耦合度,使得每个服务更加内聚,这在较大的开发团队中是相当重要的,因为一个耦合严重的系统非常影响团队开发的协作效率。
一个微服务拆分的系统必然也具有分布式拆分的优势的,因为它们每个服务也是可以通过集群扩容的。这就是为什么近些年微服务逐渐湮灭了分布式的原因。
最后再次强调,分布式和微服务最根本区别就是它们起初拆分的目的是什么,而不是市面上所谓的按照拆分粒度区划分,因为拆分粒度是一个无法衡量的指标。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 消息队列的基本作用
下一篇: 谈谈自己对于 AOP 的了解
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论