Netty框架
envoke.
学习漫漫,望各位大佬多指教
展开
-
linux五种IO模型
linux五种IO模型同步和异步的区别:linux五种IO模型 同步和异步的区别: 同步和异步的区别 同步:程序从上往下执行 异步:程序从上往下执行会有多个分支共同执行(即开多个线程)。 在web项目中 因为web项目是基于请求和响应来做的。在同步的情况下,代码从上往下执行,如果其中某个方法耗时很长 ,会导致客户端一直转圈,不能及时收到回复。 如何解决:采用多线程或者mq技术。但此种情况存...原创 2020-02-27 17:01:18 · 166 阅读 · 0 评论 -
【Netty】04 - 利用netty搭建类似于dubbo的rpc框架
学自蚂蚁课堂项目 项目地址: dubbo原理图 搭建dubbo rpc远程调用框架的思想 搭建dubbo-server 自定义rpc注解,在需要注册到zk上的类加,标识此类需要注册到zk上 将本地服务注册到zk上 zk上的节点要支持多个,以备之后的集群情况 创建netty的服务器端,并添加相应的handler 通过handler去解析相应,并利用反射执行相应的方法 获取反射调用的结果,再相应给客...原创 2020-02-27 16:59:41 · 228 阅读 · 0 评论 -
【Netty】03-实战之序列化与反序列化协议
Netty实战之序列化与反序列化协议序列化与反序列化概念序列化的模式(两种)序列化图解什么rpc远程调用序列化的模式:序列化有哪几种方式?MessagePack的使用案例:MessagePack和JSON序列的区别:为什么要使用序列化使用MessagePack进行对象实例添加pom依赖添加User实体类创建自定义编码器MessagePackEncoder创建自定义解码器MessagePackDec...原创 2020-02-24 14:52:01 · 228 阅读 · 0 评论 -
【Netty】02-netty中不得不说的粘包与拆包
netty不得不说的粘包与拆包缓冲区使用Netty通讯的时候为什么会产生粘包和拆包如何解决粘包和拆包问题 缓冲区 提到粘包与拆包,我们需要先做一些铺垫,了解一下缓冲区的作用 我们先来看一张图解: Client发送数据,如果没有缓冲区,采用的是IO流。IO流传输是按照字节进行传输的,效率极低。当我们改为缓冲区以后,我们可以把消息存到一起,一并发送 比如说:“今天你过的还好吗”这样一组字符串要传输8...原创 2020-02-23 18:04:07 · 92 阅读 · 0 评论 -
【Netty】01-服务端和客户端的搭建
Netty服务端和客户端的搭建为什么采用Netty,而不采用Nio使用Netty创建服务器端使用Netty创建客户端 为什么采用Netty,而不采用Nio Nio原生Api很复杂 Nio存在epoll bug,会产生空轮询,导致cpu被占用100% Netty是基于Nio进行包装,性能上会更高 Netty学习成本和使用成本更低 摘抄自其他文章, Netty的优点总结: 通过对Netty的分析,我...原创 2020-02-23 17:46:16 · 151 阅读 · 0 评论 -
【Nio】01--初始Nio组件
Nio学习第一天,三大组件只能支持一次的socket服务端支持客户端多次发送请求现在继续改进,支持多线程, 即伪异步方式由于线程过多,我们采用线程池来处理 BIO 朝NIO的演变过程 只能支持一次的socket服务端 此种情况下,客户端发送一次数据以后,服务器端就会停止 public class OnceSocketTcpServer { static byte[] buffer =...原创 2020-02-21 22:32:40 · 82 阅读 · 0 评论 -
osi七层网络模型及网络基础知识
java网络模型七层网络模型应用层表示层会话层传输层网络层数据链路层物理层socket编程技术socket流程图TCP协议和UDP协议TCP三次握手HTTP协议的四个特征请求和响应模型HTTP协议分类长连接和短连接 七层网络模型 应用层 HTTP协议,邮件服务器,文件服务器 表示层 将数据进行转换,使各种系统之间能够进行通讯 会话层 创建会话的连接 传输层 使用TCP和UDP...原创 2020-02-17 16:19:50 · 320 阅读 · 0 评论