首先认识几个名词:
- 数据访问框架(ORM:Object Relational Mapping):只需一个应用,将所有功能都部署在一起,以减少部署节点和成本
- Web框架(MVC:module view controller):将应用拆成互不相干的几个应用,以提升效率
- 分布式服务框架(RPC:Remote Procedure Call Protocol) :应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,用于提高业务复用及整合
- 资源调度和治理中心(SOA:Service Oriented Architecture):当服务越来越多,小服务资源的浪费等问题逐渐显现,此时 需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率,用于提高机器利用率
RPC基本概念
1.RPC协议
远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务
RPC框架
首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。
RPC 与 HTTP、TCP、UDP、Socket 的区别
TCP:
tcp 协议连接需要 3 次握手,断开需要四次挥手, 是通过流来传输的,就是确定连接后,一直发送信息,传完后断开。
UDP:
udp 不需要进行连接, 直接把信息封装成多个报文,直接发送。所以 udp 的速度更快写,但是不保证数据的完整 性。
HTTP:
超文本传输协议是一种应用层协议,建立在 TCP 协议之上
Socket :
是在应用程序层面上对 TCP/IP 协议的封装和应用。
为什么需要 RPC ?
== 灵活部署,解耦 ==
RPC 框架一般都有注册中心,有丰富的 监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。第三个 来说就是安全性。最后就是流行的服务化架构、服务化治理,RPC 框架是一个强力的支撑