1.代码越来庞大,业务越来越复杂,多个团队开发同一个应用,难以维护
2.业务复杂,占用的系统资源越来越多,流量越来越大,不方便扩展.
3.单一架构--垂直架构--分布式架构
垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统
的体积可控,一定程度上降低了开发人员之间协同以及维护的成本,提升了开发效率,缺陷:相同逻辑代码在同一个项目中不能够复制,不能复用,难以维护和升级。
随着单一应用架构、垂直应用架构向分布式应用架构的演变,业务规模越来越庞大,系统逻辑越来越复杂,系统研发和维护团队规模也越来越大,又发展成为面向服务的架构体系(SOA),并且,部分通用的功能和组件抽离出来,形成一系列中间件,加上一系列的分布式系统的基础设施,共同组成了大型分布式网站的复杂架构。
当系统达到一定规模,不同系统之间存在着重叠的业务,容易形成信息孤岛,重复造轮子(所谓的轮子就是接口或者可以理解成新需求,改别人的轮子不如重新造一个轮子),这种情况下,应用之间相互交互、相互调用便不可避免。
随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA)。
如:服务提供,服务调用,链接处理,通信协议,序列化方式,服务发现,服务路由,日志输出等行为进行封装的服务框架。
RPC的实现包括客户端和服务端,即服务的调用方,以及服务的提供方,服务调用方发送RPC请求到服务提供方,服务提供方根据调用提供的参数执行请求方法,将执行结果返回给调用方,一次RPC调用完成。
