远程过程调用底层实现机制:java
1.生成调用端socket程序动态代理对象;node
2.经过proxy调用业务方法;linux
3.调用socket请求方法;windows
4.socket发送调用请求;框架
5.生成业务代理对像;socket
6.调用具体方法;ide
7.获取调用结果;ui
8.socket返回调用结果;spa
9.返回结果;代理
RPC代码实现
windows中java中的controller调用linux系统中的service
1.在linux系统中新建service的接口与实现类
public interface LoginServiceInterface{ public String login(String name,String passwod); }
public class LoginServiceImp implements LoginServiceInterface{ @override public String login(String name,String password){ return name + "登录成功!" } }
2.新建一个框架把类发布服务
public class starter{ public static void main(String args[]){ Builder builder = new RPC.Builder(new Configuration()); builder.setBindAddress("node002").setPort(10000).setProtocol(LoginServiceInterface.Class).setInstance(new LoginServiceImp()); Service service = builder.build(); service.start(); } }
3.windowsx下新建一个Controller,把LoginServiceInterface拷到此工程中
public class LoginController{ //获取代理 LoginServiceInterface proxy = RPC.getProxy(LoginServiceInterface.class,1L,newInetSocketAddress("node002",10000),new Configuration()); String res = proxy.login("tom","111"); System.out.println(res); }