前言
RPC是一种远程过程调用协议。 RPC的主要功能是异构分布式项目之间的通信。这样消费者只需要知道接口,远程调用方法和调用本地方法是完全一样的。 如果消费层仅通过接口调用远程实现方法,那么它们之间发送的数据必须是类、方法、参数、返回值等发送的信息。 在沟通方面,您需要根据客户的要求公开您的服务。客户端必须通过动态代理运行未知的实现方法。 一旦您了解了如何使用动态代理,您将看到在动态代理的方法执行过程中,您可以检索类、方法、参数、返回值等,而无需执行实际的方法(在调用方法中)。 执行该方法所需的参数。 然后将这些参数传输到远程。提供者层接收到消费者层方法的参数后,通过反射执行注册的类方法。 (提供者层必须在搜索容器中注册公共接口的实现类的方法。)
说了这么多,为什么不尝试自己实现呢?
Bio 客户端与服务器直连的多线程通信RPC示例
https://github.com/yuyufeng1994/my-rpc/tree/v1
添加Zookeeper注册发现并添加Protostuff序列化示例
https://github.com/yuyufeng1994/my-rpc/tree/v2
通过增加Netty来增加集群负载的示例
https://github.com/yuyufeng1994/my-rpc
销钉
https://github.com/apache/incubator-dubbo
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/85073.html