目录

一、分布式

二、集群

三、微服务

四、SOA(面向服务)

总结


一、分布式

分布式系统是一组计算机,通过网络相互连接传递消息与通信后并协调它们的行为而形成的系统。组件之间彼此进行交互以实现一个共同的目标

好处:

2. 模块之间独立,各做各的事,便于扩展,复用性高

3. 高吞吐量。某个任务需要一个机器运行10个小时,将该任务用10台机器的分布式跑(将这个任务拆分成10个小任务),可能2个小时就跑完了

4. 分布式:一个业务分拆多个子业务,部署在不同的服务器上(不同的服务器,运行不同的代码,为了同一个目的),服务之间也是通过rpc来交互或者是webservice来交互的。

作用:分布式解决网站高并发带来问题。

一般来说,一个子业务我们称为节点

分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难。

二、集群

集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。

集群技术特点:

1. 通过多台计算机完成同一个工作,达到更高的效率。

2. 两机或多机内容、工作过程等完全一样。如果一台死机,另一台可以起作用。

集群:同一个业务,部署在多个服务器上(不同的服务器运行同样的代码,干同一件事)。

作用:通过负载均衡设备共同对外提供服务。

三、微服务

简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务可以单独部署运行,服务之间可以通过RPC来相互交互,每个微服务都是由独立的小团队开发,测试,部署,上线,负责它的整个生命周期。各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)。

作用:各服务可独立应用,组合服务也可系统应用。

四、SOA(面向服务)

SOA粗暴理解:把系统按照实际业务,拆分成刚刚好大小的、合适的、独立部署的模块(服务),每个模块之间相互独立。各个服务之间可以通过某种途径(可以是http链接,或者是基于socket的RPC调用)来访问。

还有服务治理的功能:能进行服务治理的框架,比如dubbo+zookeeper,比如SpringCloud,有了服务治理功能,我们就能清晰地看到服务被谁谁谁调用,谁谁谁调用了哪些服务,哪些服务是热点服务需要配置服务器集群,而对这个服务集群的负载均衡也是服务治理可以完成的重要功能之一。

实际上SOA只是一种架构设计模式,而SOAP(访问方式+返回形式:http+xml)、REST(http+json)、RPC(socket的形式)就是根据这种设计模式构建出来的规范。上文提到的CXF就是典型的SOAP/REST框架,dubbo就是典型的RPC框架,而SpringCloud就是遵守REST规范的生态系统。

参考:https://www.zhihu.com/question/42061683/answer/251131634