二、RPC服务
1、RPC架构
这个叫RPC啊,,恍然大悟!
RPC主要是用在大型企业里面,因为大型企业里面系统繁多,业务线复杂,而且效率优势非常重要的一块,这个时候RPC的优势就比较明显了,实际的开发当中是这么做的,项目一般使用maven来管理。比如我们有一个处理订单的系统服务,先声明它的所有接口(这里指的是java中的interface),然后将整个项目打包为一个jar包,服务端这边引入这个二方库,然后实现相应的功能,客户端这边只需要引入这个二方库就可以调用了。
为什么这么做?主要是为了减少客户端这边的jar包大小,因为每一次打包发布的时候,jar包太多总是会影响效率。另外也是将客户端和服务端解耦,提高代码的可移植性。
2、同步调用和异步调用
同步调用及时客户端等待执行完成并返回结果。
异步调用就是客户端不等待调用执行完成返回结果,不过依然可以通过回调函数接收到返回结果的通知。如果客户端不关心结果,则可以变成一个单向的调用。这个过程有点类似于Java中的callable和runnable接口,我们进行异步操作的时候,如果需要知道执行的结果就使用callable接口,并且可以通过Future类获取到异步执行的结果信息。如果不关系执行的结果,直接使用runnable接口就可以了,因为它不返回结果,当然啦,callable也是可以的,我