Netty 实战入门详解

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

Netty 实战入门详解_第1张图片

你可能感兴趣的:(Netty)