ApplicationContext getBean
方法获取RpcProxyClient
类RpcProxyClient
类动态代理获得需要调用的servcie
,并把参数传进去RemoteInvocationHandler
会封装请求信息到RpcRequest
,然后RpcNetTransport
发起远程socket
调用远程接口
GpRpcServer
类死循环 通过ServerSocket
监听端口,接收请求。 此类实现ApplicationContextAware, InitializingBean
通过重写setApplicationContext
把类信息set到handlerMap
里面去。- 收到的请求都交给
ProcessorHandler
线程池去处理业务 ProcessorHandler
是线程池管理的线程,拿到网络输入流之后。根据请求里面的信息,通过反射拿到实现类执行业务逻辑。@RpcService
注解用来标记具体的实现类,在第一步就是用applicationContext.getBeansWithAnnotation
扫描到所有的实现类