摘要:
1. 什么是 TCP 粘包/拆包 在 RPC 框架中,TCP 粘包和拆包问题是必须解决一个问题,因为 RPC 框架中,各个微服务相互之间都是维系了一个 TCP 长连接,比如 Dubbo 就是一个全双工的长连接。由于微服务往对方发送信息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问 阅读全文
posted @ 2022-06-07 20:06
Maple~
阅读(1146)
评论(0)
推荐(0)
摘要:
1. Netty 架构 传输服务 支持 BIO 和 NIO 容器集成 支持 OSGI、JBossMC、Spring、Guice 容器 协议支持 HTTP、Protobuf、二进制、文本、WebSocket 等一系列常见协议都支持。 还支持通过实行编码解码逻辑来实现自定义协议 核心:可扩展事件模型、通 阅读全文
posted @ 2022-06-07 20:06
Maple~
阅读(159)
评论(0)
推荐(0)
摘要:
1. 什么是 Codec 从网络传输的角度来讲,数组总是以字节的格式在网络之中进行传输 每当源主机发送数据到目标主机时,数据会从本地格式被转换成字节进行传输,这种转换被称为编码,编码的逻辑由 编码器 处理。 每当目标主机接受来自源主机的数据时,数据会从字节转换为我们需要的格式,这种转换被称为解码,解 阅读全文
posted @ 2022-06-07 20:05
Maple~
阅读(1033)
评论(0)
推荐(0)
摘要:
1. 核心组件概述 下面枚举所有的 Netty 应用程序的基本构建模块(核心组件),包括客户端和服务器: Bytebuf(字节容器) Bootstrap 和 ServerBootstrap (启动引导类) Channel(网络操作抽象类) EventLoop (事件循环) ChannelHandle 阅读全文
posted @ 2022-06-07 20:05
Maple~
阅读(360)
评论(0)
推荐(0)
摘要:
1. 什么是心跳机制 HeartBeat 在 TCP 长连接 keepAlive 的应用场景下,client 端一般不会主动关闭它们之间的连接,Client 与 Server 之间的连接如果一直不关闭的话,随着客户端连接越来越多,Server 早晚有扛不住的时候,这时候 Server 端需要采取一些 阅读全文
posted @ 2022-06-07 20:05
Maple~
阅读(1019)
评论(0)
推荐(0)
摘要:
正如我们先前所指出的,网络数据的基本单位永远是 byte(字节)。Java NIO 提供 ByteBuffer 作为字节的容器,但这个类是过于复杂,有点难以使用。 Netty 中 ByteBuffer 的替代是 ByteBuf,一个强大的实现,解决 JDK 的 API 的限制,以及为网络应用程序开发 阅读全文
posted @ 2022-06-07 20:04
Maple~
阅读(6679)
评论(0)
推荐(1)
摘要:
我们在上一章研究的 bytebuf 是一个容器用来“包装”数据。在本章我们将探讨这些容器如何通过应用程序来移动,传入和传出,以及他们的内容是如何处理的。 本章主要内容 Channel ChannelHandler ChannePipeline ChannelHandlerContext 1. Cha 阅读全文
posted @ 2022-06-07 20:04
Maple~
阅读(164)
评论(0)
推荐(0)
摘要:
在了解 ChanelPipeline,EventLoop 等组件之后,我们需要将这些组件组织起来,使其成为一个可运行的应用程序。 这里就需要引导 Boostrap 相关组件了。 1. Boostrap 类 引导类的层次结构包括一个抽象的父类和两个具体的引导子类: 服务端引导类 ServerBoots 阅读全文
posted @ 2022-06-07 20:03
Maple~
阅读(223)
评论(0)
推荐(0)
摘要:
1. BIO ① 传统的阻塞式通信流程 早期的 Java 网络相关的 API(java.net包) 使用 Socket(套接字)进行网络通信,不过只支持阻塞函数使用。 要通过互联网进行通信,至少需要一对套接字: 运行于服务器端的 Server Socket 运行于客户机端的 Client Socke 阅读全文
posted @ 2022-06-07 20:03
Maple~
阅读(145)
评论(0)
推荐(0)
摘要:
在本节中,我们将构建一个完整的的 Netty 客户端和服务器。 1. 导入 Netty 依赖 新建一个 Maven 项目,并导入 Netty 4.x 依赖: <dependencies> <dependency> <groupId>io.netty</groupId> <artifactId>net 阅读全文
posted @ 2022-06-07 20:03
Maple~
阅读(261)
评论(0)
推荐(0)

浙公网安备 33010602011771号