大家好,欢迎来到IT知识分享网。
RPC(Remote Procedure Call)远程过程调用,直观说法就是A通过网络调用B的过程方法,这个过程主要涉及三点:
- Call ID映射
在RPC中,所有的函数都必须有自己的一个ID。这个ID在所有进程中都是唯一确定的。客户端在做远程过程调用时,必须附上这个ID。客户端和服务端分别维护一个 {函数 与Call ID} 的对应表,当客户端需要进行远程调用时,它就查一下这个表,找出相应的Call ID,然后把它传给服务端,服务端也通过查表,来确定客户端需要调用的函数,然后执行相应函数的代码。 - 序列化和反序列化
客户端怎么把参数值传给远程的函数呢?客户端需要把参数先转成一个字节流,传给服务端后,服务端再把字节流转成自己能读取的格式。这个过程叫序列化和反序列化。同理,从服务端返回给客户端的值也需要序列化反序列化的过程。 - 网络传输
RPC要做到用户无感知的调用远程服务必定要经过网络传输,而netty正好是是Java编写的快速开发高性能高可靠性的网络编程框架。目前使用netty作为传输层的RPC框架很多,国内知名的有dubbo,motan等。大部分RPC框架都使用TCP协议,但其实UDP也可以,而gRPC干脆就用了HTTP2。
所以,要实现一个RPC框架,其实只需要解决以上三点实现了就可以了
Netty 目前是一个被广泛使用的网络通信框架,例如阿里开源的 Dubbo 以及分布式的搜索引擎 Elasticsearch底层通讯都是基于Netty实现。它是 Java 网络的首选框架,作为一名称职的程序员每个人都应该了解和掌握它。即使工作中你没有直接使用 Netty,它也会为你的工作带来积极的影响。本场 Chat 将从一简单的示例程序开始,逐渐深入并一一揭开其背后的神秘面纱,为你打开 Netty 的大门,让你彻底理解Netty,做到完全可以上手Netty程序。
本场 Chat 将为你带来以下内容:
- 如何从0编写一个 Netty 程序。
- 实现 WebSocket 长连接。
- 编写 Netty 程序的一般步骤是什么?
- Netty 中几个重要的对象是什么,他们之间的关系是什么?
- Netty 的线程模型是什么?
本 Chat 适合想学习 Netty 的初学者,最好了解一些 NIO 知识,可以参看本博客中几篇介绍Java Nio的文章,当然不了解也没关系,不影响对文章的理解。
https://gitbook.cn/gitchat/activity/5b62ae54bb4f014dbcbdbb6c
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/14868.html