1.RPC:远程过程调用,一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 RPC 的出现就是为了让你调用远程方法像调用本地方法一样简单。
先简单理解过程:
消费方调用服务,client stub将服务内容变成能网络传输的格式,client stub发送到服务端。
服务端解码,调用本地服务,返回结果到server stub,server stub在发送消息给消费方。
消费方client stub解码,得到结果。
来看详细过程
服务消费方调用以本地调用方式调用服务;
client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
client stub找到服务地址,并将消息发送到服务端;
server stub收到消息后进行解码;(第一次到服务方或者消费方都要解码)
server stub根据解码结果调用本地的服务;
本地服务执行并将结果返回给server stub;
server stub将返回结果打包成消息并发送至消费方;
client stub接收到消息,并进行解码;
服务消费方得到最终结果。
网上的图片:
2.SOA 面向服务的架构,也就是把工程按照业务逻辑拆分成服务层、表现层两个工程。服务层中包含业务逻辑,只需要对外提供服务即可。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。
即SOA架构中有两个主要角色:服务提供者和服务使用者。
3.分布式就是我们把整个系统拆分成不同的服务然后将这些服务放在不同的服务器上减轻单体服务的压力提高并发量和性能。比如电商系统可以简单地拆分成订单系统、商品系统、登录系统等等,拆分之后的每个服务可以部署在不同的机器上,如果某一个服务的访问量比较大的话也可以将这个服务同时部署在多台机器上。(可以将功能拆分,也可以将一个功能多部署几台服务器)
4.分布式优点:
分布式系统的代码根据业务被拆分。每个团队可以负责一个服务的开发,这样提升了开发效率。另外,代码根据业务拆分之后更加便于维护和扩展。
另外,我觉得将系统拆分成分布式之后不光便于系统扩展和维护,更能提高整个系统的性能。
5.负载均衡改善了跨多个计算资源工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间,并避免任何单个资源的过载。使用具有负载平衡而不是单个组件的多个组件可以通过冗余提高可靠性和可用性。负载平衡通常涉及专用软件或硬件。