archorfight / rpc-server

一个简单的rpc框架demo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

客户端

  1. ApplicationContext getBean方法获取RpcProxyClient
  2. RpcProxyClient类动态代理获得需要调用的servcie,并把参数传进去
  3. RemoteInvocationHandler 会封装请求信息到RpcRequest,然后RpcNetTransport发起远程socket调用远程接口

服务端

  1. GpRpcServer类死循环 通过ServerSocket监听端口,接收请求。 此类实现ApplicationContextAware, InitializingBean 通过重写setApplicationContext 把类信息set到handlerMap里面去。
  2. 收到的请求都交给ProcessorHandler 线程池去处理业务
  3. ProcessorHandler是线程池管理的线程,拿到网络输入流之后。根据请求里面的信息,通过反射拿到实现类执行业务逻辑。
  4. @RpcService 注解用来标记具体的实现类,在第一步就是用applicationContext.getBeansWithAnnotation 扫描到所有的实现类

About

一个简单的rpc框架demo


Languages

Language:Java 100.0%