以下仅自己作为笔记参考:
环境:有两个项目,A项目暴露接口供其他项目使用,其内部进行相关逻辑实现,B项目调用A项目暴露出来的接口,进行rpc调用。
步骤:
- 首先A项目要提供相关的接口、入参、出参、等等需要提供的jar
- 然后B项目需要去依赖A项目提供的jar,这样才可以使用
- 接着B项目使用动态代理来获取接口并进行rpc调用
- B项目中的代理实现了和A项目的通信(Socket),并进行数据传输,数据有类名、方法名,参数,参数类型等等等等
- A项目发布服务之后就等待客户端发送请求,可以使用线程池达到异步处理
- A项目服务端接收到客户端的请求之后,使用反射来进行方法调用,然后把处理结果发送给客户端
- B项目客户端接收请求之后就可以根据返回数据进行不同的处理
具体参考github项目