美文网首页
RPC学习——无注册中心

RPC学习——无注册中心

作者: 扯闲话 | 来源:发表于2020-07-15 19:53 被阅读0次

    服务发布端

    服务端发布服务类:RpcServer

    方法名:publisher,发布服务

    任务处理类:ProcessorHandler

    方法名:run,该类实现了Runnable

    方法名:invoke,本地的反射调用方法

    服务发布流程

    类的实例化

    RpcServer rpcServer = new RpcServer();

    发布流程

    rpcServer.publisher(new HelloServiceImpl(), 12345);——>开启socket监听,当监听到消息之后线程池提交消息——>run(),反序列化请求,封装到Request中——>执行本地invoke方法——>分解信息,反射调用,得出结果

    总结

    开启socket监听

    服务消费端

    客户端代理类:RpcClientProxy

    方法名:clientProxy,生成代理对象

    动态代理类:RemoteInvocationHandler

    方法名:invoke,发起客户端和服务端的远程调用,调用客户端的信息进行传输

    socket传输类:TcpTransport

    方法名:newSocket,准备创建Socket连接

    方法名:send,发送请求

    服务端消费流程

    1、proxy.clientProxy(IHelloService.class, "127.0.0.1", 12345);生成一个代理对象

    2、iHelloService.sayHello("张三");代理对象调用——>代理类的invoke方法。解析调用信息为RpcRequest,调用TcpTransport的send方法——>创建socket连接,ObjectOutputStream发送请求,ObjectInputStream接收请求

    注:

    用到的知识点:代理、序列化、线程池、Socket + IO

    参考:

    手写实现RPC框架(不带注册中心)

    相关文章

      网友评论

          本文标题:RPC学习——无注册中心

          本文链接:https://www.haomeiwen.com/subject/znfjhktx.html