RPC,是一种远程调用方式(Remote Procedure Call),通过RPC我们可以像调用本地方法一样调用别的机器上的方法,用户将无感服务器与服务器之间的通讯。RPC在微服务当中起到相当大的作用,当然RPC不是微服务必须的一种方式,有别的方式也可以实现这种远程调用例如RESTful API就可以实现远程调用。如果有用过SOAP那么你使用RPC将会觉得很类似,都是可以直接调用别的机器上的方法。
随着业务的发展我们的项目从简单的单体结构逐渐的演化成微服务结构,我们为什么要拆分成微服务呢?那我们来说说微服务和单体架构的优缺点。我们看一下单体架构图。
单体架构优点
-
部署容易,如php写的项目,只要一个文件夹复制到支持php的环境就可以了,java只需要一个jar包
-
测试容易,我们整体项目只要改了一个地方马上就可以测试得出结果
-
负载均衡就可以解决,快速部署多个一模一样的项目在不同的机器运行分流
单体架构的缺点
-
部署的问题,对于php来说这点还好,但是对于java的项目来说,我们需要重新打包整个项目耗费的时间是很长的
-
代码维护,由于所有的代码都写在一个项目里面,要想要修改某一个功能点那么需要对项目的整体逻辑和设计有较深的理解,否则代码耦合严重,导致维护难,特别对于新入职的员工来说这将是最容易出现问题的地方
-
开发效率低,随着项目需求的不断改变和新的功能新增