Justin-刘清政的博客

python/分布式与微服务/5-分布式架构与微服务架构的区别

2020-05-11

一 分布式架构

分布式服务顾名思义服务是分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向SOA架构的,服务之间也是通过rpc来交互或者是webservice来交互的。逻辑架构设计完后就该做物理架构设计,系统应用部署在超过一台服务器或虚拟机上,且各分开部署的部分彼此通过各种通讯协议交互信息,就可算作分布式部署,生产环境下的微服务肯定是分布式部署的,分布式部署的应用不一定是微服务架构的,比如集群部署,它是把相同应用复制到不同服务器上,但是逻辑功能上还是单体应用。

二 微服务架构

微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难

微服务架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。

微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。

三 区别

分布式的方式是根据不同机器不同业务。

将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。

微服务更加强调单一职责、轻量级通信(HTTP)、独立性并且进程隔离。

微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。

四 分布式是否属于微服务?

不一定,如果一个很大应用,拆分成三个应用,但还是很庞大,虽然分布式了,但不是微服务。。微服务核心要素是微小。

五 微服务架构是分布式服务架构的子集

微服务架构通过更细粒度的服务切分,使得整个系统的迭代速度并行程度更高,但是运维的复杂度和性能会随着服务的粒度更细而增加。

六 总结

1
2
3
4
5
6
7
8
9
10
11
# 分布式服务架构
强调的是服务化以及服务的分散化,重在资源共享与加快计算机计算速度

# 微服务
更强调服务的专业化和精细分工,重在解耦合,使每个模块都独立;

# 从实践的角度来看
微服务架构通常是分布式服务架构,反之则未必成立。
所以,选择微服务通常意味着需要解决分布式架构的各种难题。

# 分布式:分散压力。微服务:分散能力

image-20200511004810349

使用支付宝打赏
使用微信打赏

点击上方按钮,请我喝杯咖啡!

扫描二维码,分享此文章