分布式和微服务是什么关系?简而言之,分布式和微服务的概念相似,并且分布式属于微服务。但是分布式服务和微服务在架构,功能和粒度上有所不同。因此,两者之间的关系既相关又互不相同。本文主要向您介绍分布式服务和微服务,并讨论两者之间的关系。有兴趣的朋友可以继续阅读。
1、微服务
微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务可以单独部署运行,服务之间可以通过RPC来相互交互,每个微服务都是由独立的小团队开发,测试,部署,上线,负责它的整个生命周期。
2、分布式
顾名思义,分布式服务将服务部署在不同的计算机上。一种服务可能负责多种功能。它是面向SOA的体系结构。服务也可以通过rpc或webservice进行交互。设计逻辑体系结构后,应完成物理体系结构设计。系统应用程序部署在多台服务器或虚拟机上,并且分别部署的部件通过各种通信协议彼此交换信息,这可以视为分布式部署和生产环境。以下微服务必须以分布式方式部署,而且以分布式方式部署的应用程序不一定具有微服务体系结构,例如集群部署,它可以将同一应用程序复制到不同的服务器,但在逻辑上仍然是单个应用程序。
3、关系
联系:分布式只是将不同机器分散在不同位置的一种手段,然后这些机器可以互相帮助完成业务。微服务是一种特殊的分布式,换句话说,微服务体系结构是分布式服务体系结构的子集。微服务体系结构通过更细粒度的服务分段使整个系统的迭代速度和并行度更高,但是操作和维护的复杂性和性能将随着服务的精细度而增加。微服务专注于解耦,因此每个模块都是独立的。分发侧重于资源共享和加快计算机计算。
区别:
(1)架构不同:微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。
(2)作用不同:分布式:不同模块部署在不同服务器上,分布式主要解决的是网站高并发带来问题。微服务:各服务可独立应用,组合服务也可系统应用。
(3)粒度不同:微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势,不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难。
推荐阅读:java架构师培训:java最佳测试框架JBehave的基本介绍
如果你想了解更多关于java架构师的专业知识,可以加入JAVA架构师交流群:1160405674,里面都是同行,有资源分享包括但不限于(分布式架构、高可扩展、高性能、高并 发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql 、Zookeeper、Tomcat、Docker、Dubbo、Nginx)。欢迎一到五年的工程师加入,合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!