随着互联网的发展,Web应用与服务的规模不断扩大,才能满足不断增加的用户和需求。而原来只用一台服务器来部署的单机应用的方式已经满足不了如此大的需求。为了提高性能,单机发展为分布式架构,简单来说就是通过增加服务器的数量来弥补性能上的不足,当然同时也带来了一些问题。
分布式系统
分布式系统(distributed system)
是由一组网络进行通信,为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统是为了用单体性能普通的机器完成单个计算机无法完成的计算、存储任务,通过合理调度各台计算机共同合作来提高性能,完成数量更多、体量更大的任务。
负载均衡
,也就是nginx
可以做的事情。
RPC
下图是Dubbo官方文档中的一张图,说明了网站应用的架构演变
现在应用采用分布式架构,服务被分散到不同的服务器上,一台服务器上的程序就会遇到需要调用另一台服务器上的某个方法的情况,这个时候就叫RPC(远程过程调用)(Remote Procedure call)
RPC的调用过程如下图:
Dubbo
就是一个流行的RPC框架,提供面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册与发现、高度可扩展能力、运行期流量调度(灰度发布)、可视化工具等功能。
流动计算架构
当服务增多时,服务的管理与资源的分配成为亟待解决的问题,此时,需要增加一个调度中心基于访问压力实时管理集群容量,提高集群的利用率。用于提高机器利用率的资源调度和治理中心(SOA)(Service Oriented Architecture)就十分重要。
服务通过在注册中心进行注册,被统一的管理起来并可被发现,并对用户开放。当用户需要用到某一服务时,就去注册中心拿,注册中心就会将对应的服务提供给他。