# rpc-study **Repository Path**: SmilingCobra/rpc-study ## Basic Information - **Project Name**: rpc-study - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-30 - **Last Updated**: 2021-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # rpc-study项目说明 ## 1.http格式的rpc调用 ### (1)启动类说明 启动类如下: com.cobra.consumer.Consumer 以及 com.cobra.provider.Provider。 启动顺序,在使用idea的情况下,利用Edit Application选项设置如下三个配置项。模拟三个Tomcat启动。 ![image-20210731151853636](README.assets/image-20210731151853636.png) ![image-20210731151912720](README.assets/image-20210731151912720.png) ![image-20210731151921990](README.assets/image-20210731151921990.png) 分别启动这三个配置类即可。之后启动Consumer类,从控制台日志可以看到随机策略负载均衡输出 ### (2)思路说明 从Consumer类入手,可以看出是通过代理的方式执行目标方法。目标方法的执行实际上通过http请求将参数信息传递到上述的8080,8081以及8082的tomcat(即一个独立的jvm进程)。通过调用com.cobra.framework.protocol.http.HttpServerHandler的handler方法。具体怎么进入这个方法可以在Provider中的HttpServer启动方法中找到,内置的Tomcat设置了DispatcherServlet,拦截请求之后将业务处理逻辑交给了HttpServerHandler执行。整体业务的核心在于ProxyFactory.getProxy方法,也就是获取相应接口的代理对象。这也是dubbo的核心原理。