在当前,最流行的技术可谓是微服务和分布式了,它们之间复杂交错,本篇文章我们就来聊聊它们之间的关系及区别。
微服务与分布式间关系
微服务
微服务,听名字就能对它有着不少想象,它的意思就是将各种模块拆分成一个独立的服务单元并通过接口来实现数据的交互。直白一点的说,微服务就是微笑的服务,有多小呢?小到一个服务只会对应一个单一的功能,只做一件事,这在程序当中是很难得的。而且,它的服务是可以单独部署运行的,服务之间还能够通过RPC来相互交互,每个微服务都是由一个独立的小团队开发,测试,部署,上线,负责它的整个生命周期。
分布式
分布式服务,也是看名字就能大概知道一点功能了,顾名思义它就是分散部署在不同的机器上的服务,一个服务可能负责几个功能,它是一种面向SOA架构的,服务之间同上也是通过rpc来交互或webservice交互的。逻辑架构设计完后就该做物理架构设计,系统应用部署在超过一台服务器或虚拟机上,且各分开部署的部分彼此通过各种通讯协议交互信息,就能算作为分布式部署。生产环境下的微服务肯定是分布式部署的,但分布式部署的应用却不一定是微服务架构,如集群部署,它虽然把相同应用复制到不同服务器上,但实际逻辑功能上却还是单体应用。
关系
分布式具体来说是一种手段,它把不同的机器分散在不同的地方,然后通过这些机器间相互协助来完成业务。
微服务其实也可以说是一种特殊的分布式,换句话说,微服务架构是分布式服务架构的子集。微服务架构通过更细粒度的服务切分,使得整个系统的迭代速度并行程度更高,但它的运维的复杂度和性能也会随着服务的粒度更细而增加。微服务重在解耦合,使每个模块都独立。而分布式更重在资源共享与加快计算机计算速度。
微服务与分布式间区别
1、首先它们之间架构是不同的,微服务的设计目的是为了不让某个模块因为升级或BUG等杂七杂八原因而影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上的,它也可以是同一个服务器。
2、再来是作用不同,分布式都是不同模块部署在不同服务器上的,主要解决的为网站高并发所带来问题。而微服务各服务是可独立应用的,且组合服务也可系统应用。
3、最后是粒度不同,相比分布式服务来说,微服务间粒度更小,服务间耦合度更低,并且因为每个微服务都是由一个独立的小团队负责,所以它的敏捷性会更高,分布式服务最后都会向微服务架构演化,这是一种趋势,不过服务微服务化后带来的劣势也是非常明显的,例如服务粒度小,数量大,后期运维艰难等。
以上就是本篇文章的所有内容,如果小伙伴们还有什么想要了解的java架构师知识,就请来我们网站寻找答案吧。
推荐阅读: