摘要: 序列化就是将对象的状态信息转换成可以存储或传输的过程。 Netty序列化对象一般有以下几种方式: JDK JBoss Marshalling Protocol Buffers kryo JDK 实体类 Request package com.wk.test.nettyTest.jdk; import 阅读全文
posted @ 2020-05-12 10:37 学霸王先森 阅读(1170) 评论(0) 推荐(0) 编辑
摘要: 拆包粘包 TCP在向目标发送数据时,会通过缓冲区发送,当数据达不到缓冲区的大小时会发生粘包。当数据超过缓冲区大小时,则会分成多个部分,就是拆包。 例如上图:我们实际发送和希望接收到这样的数据,但是实际却有可能接收成这样。 程序中,我们这样向服务器发送三条数据,而服务端只接收到一条: Netty解决方 阅读全文
posted @ 2020-05-12 10:35 学霸王先森 阅读(216) 评论(0) 推荐(0) 编辑
摘要: reactor模式 在深入了解Netty之前,我们需要先知道reactor(反应器模式),是高性能网络编程必须知道的模式。 BIO 我们先了解下原始socket编程: //这里可以是个多线程,每个线程对应一个socket,循环处理业务,此处代码就略了,主要讲逻辑while (true){ //new 阅读全文
posted @ 2020-05-12 10:33 学霸王先森 阅读(234) 评论(0) 推荐(0) 编辑
摘要: NIO/OIO Netty是流行的NIO框架,我们在学习Netty之前需要先了解什么是NIO和BIO。 OIO:阻塞IO,传统的socket就是阻塞IO,例如服务端accept是阻塞的,只有当新连接来了,accept才会返回,主线程才能继续。这种IO占用了系统的调度资源,造成了浪费。 NIO(Non 阅读全文
posted @ 2020-05-12 10:29 学霸王先森 阅读(221) 评论(0) 推荐(0) 编辑