一: 场景
现在微服务开发是一个很流行的趋势,与人交谈如果说不知道微服务是什么东西倒显得落后了,但是、和微服务相近概念还有集群、分布式,这几个概念总容易让人混淆,那么本文就以简单通俗的方式来讲解他们的概念和区别,方便大家理解和记忆。
二: 定义
微服务: 它是Martin Fowler在2014年首次提出的一个概念,微服务是一种架构风格,可以说是一种处理问题的思想,通过这种思想可以将原来一个复杂的系统拆分成多个子系统,多个子系统之间是相互独立的,有自己独立的进程,可以单独部署,每个子系统(微服务)都只关注实现自己的业务功能,这样子就解决了原来所有业务都存放在一个系统上,让系统显得很臃肿,并且难以抽离的问题。
集群: 简单的说是将同一个功能的项目(系统)部署到不同的服务器中,提高了系统的高可用性,就好像我们以前在学校机房里面的备用发电机一样,如果正常的发电机无法使用了,就可以使用备份的,这样你们就不能停止学习了0_0。
分布式: 通俗的将,是将一个大系统中拆分出来的子系统分别部署到不同的服务器上,与集群不同之处在于,集群是将同一个业务的项目部署在不同的服务器上,是物理层面的,保障的是系统的高可用性,而分布式是一种工作方式,目的在与将不同业务的子项目部署到不同的服务器上,并不能保障各个项目的高可用性,但是可以对分布式中每个节点做集群处理,从而实现高可用的目的。
三: 区别
微服务、集群、分布式三者的关系和区别:
- 1.微服务是将一个复杂系统根据业务或者其他方式拆分成具有不同功能的子系统的思想或者说架构风格,可以说是实现集群或者分布式的前提,毕竟,没有系统的话集群和分布式也就没有作用的对象了。
- 2.集群则是将按照微服务架构风格拆分出来的同一个业务系统部署到不同的服务器上,这样一个系统就存在多份,保障了系统的高可用性。
- 3.分布式则是按照微服务架构风格拆分出来的不同业务的系统系统部署到不同的服务器上,可以对分布式上的每一个节点进行集群设置,实现高可用,它是一种工作的方式。
- 4.简单说,分布式是以缩短单个任务的执行时间来提升效率的,如一个任务由5个小任务组成,处理完一个任务需要1个小时,那么使用一台服务器的话则需要五个小时,如果使用五台服务器则只需要一个小时,这种也是Hadpood中的一种Map/Reduce 分布式计算模型的工作模式。
四: 写在最后
以上的总结都是本人学习之后所思所想的感悟,可以存在着一些错误,如果大家有不同的观点,欢迎留言指出,希望大家一起学习、进步。
非常感谢你阅读本文,如果有什么疑问或者建议,欢迎在文章下方留言或者私信我