我是怎么写出eos的(RPC印象)
1 引言 在eos中,一般我们都有client和server两个应用,server端写了服务PersonService,在client中直接可以调用,上代码: PersonService service = com.sunsharing.eos.client.ServiceContext.getBean(PersonService.class); Map map = service.exportData(batchNo,key)); 这时想起类似的两个场景: 1)随着页面的复杂,服务越来越多,部署在不同的机器上,如何简单方便的让远程服务的调用如同本地服务调用一般? 2)甚至可以联想到前端ajax的调用,浏览器端如何调用后端所写的服务? 上述有几点表现: 客户端与服务端分属不同空间内存区域 透明调用机制让使用者不必显式的区分本地调用和远程调用 说了这么多,其实,我只是想聊聊RPC... 2 何为RPC RPC(Remote Procedure Call Protocol),即远程过程调用。通俗的讲,两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。RPC让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。 一个简单RPC的过程是这样的: