JAVA分享篇(23)基础知识大总结

Netty框架作为“java进阶之梯”,是程序员绕不开的一个框架。目前市面上很多开源框架, 基本上都是使用Netty作为网络通信的底层框架,包括Dubbo、RocketMQ、Canal、otter、HBase等等。

本文根据一个简单的业务需求,使用Netty框架搭建一个简单的RPC框架,包括服务端,客户端,注册中心等,暂时不考虑监控,主要目的是带大家熟悉一下Netty的一些常用API,以及熟悉下服务间的远程调用过程。

Netty其实就是对网络通信的封装框架,说到底底层还是IO那一套。建议大家先熟悉一下NIO的三件套,即buffer,selector,channel。

什么是RPC?

RPC是一种远程调用过程,是一种通过网络远程调用其他服务的协议。通俗的说就是,A通过打电话的方式让B帮忙办一件事,B办完事后将结果告知A。

RPC的远程调用流程:

1、client客户端发起请求到client stub(客户端存根:存放服务端地址信息,将客户端的请求参数编组成网络 消息,再通过网络发送给服务方),client stub接收到调用后负责将方法、参数等编组成能够进行网络传输的 消息体;在java中就是序列化的过程。

2、client stub找到服务地址,并将消息通过网络发送到服务端(server),server stub(服务端存根:接受客户 端发送过来的消息并解组,再调用本地服务,再将本地服务执行结果发送给客户端)收到消息后进行解组。

3、server stub根据解组结果调用本地的服务;

4、本地服务执行处理逻辑,将结果返回给server stub;

5、server stub将返回结果编组成网络消息,通过网络并发送客户端;

6、client stub接收到消息,并进行解组;

7、服务调用方client得到最终结果。

免责声明:部分文章信息来源于网络以及客户意见反馈,本站只负责对文章进行整理、排版、编辑,出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们会尽快联系您处理

相关新闻

QR code