
Netty
文章平均质量分 93
weihubeats
开源框架Tlog贡献者,技术大多都源于生产实践,乐于分享.公众号:小奏技术
展开
-
从Netty发送消息流程分析聊聊高水位和低水位
Netty中的高低水位是通过来设置的,是一个对象,它包含两个属性low和high,分别表示低水位和高水位如果待发送数据的内存占用总量超过高水位线的时候,Netty就会将Channel的状态标记为不可写状态,并触发事件如果待发送数据的内存占用总量低于低水位线的时候,Netty会再次将Channel的状态标记为可写状态,并触发事件如果仅仅只是设置了高低水位参数,但是在写代码中没有对进行判断,那么高低水位还是不会生效高低水位主要是为了防止中的数据不断增加,最终撑爆导致OOM。原创 2024-11-07 04:00:00 · 853 阅读 · 0 评论 -
java nio FileChannel堆内堆外数据读写全流程分析及使用(附详细流程图)
这里是小奏,觉得文章不错可以关注公众号小奏技术。原创 2024-05-27 09:36:49 · 576 阅读 · 0 评论 -
图文加多个测试带你彻底搞懂Netty ChannelPipeline的执行顺序(附源码)
从上面大量的用例我们可以看出如下规律是双向链表结构,包含和两种处理器.也有处理器既是又是,但是也属于这两种只会从当前的handler位置开始,往前找outbound执行与会从tail的位置开始,往前找outbound执行的执行顺序一般是从上到下的执行顺序一般是从下到上,原创 2023-11-10 09:50:19 · 849 阅读 · 1 评论 -
从RocketMQ通信模块聊聊EpollEventLoopGroup和NioEventLoopGroup
总的来说网上大多说明在linux性能是更高于,但暂时没有找到相关的基准测试数据。总的来说在linux上面使用似乎是更优的选择,所以我们在部署RocketMQ的时候我们可以将参数配置为true。原创 2023-08-28 10:10:11 · 457 阅读 · 0 评论 -
关于网络传输序列化这件“小“事(涵盖主流的序列化分析)
总的来说目前市面上开源的序列化框架还是比较多的,但是目前主流的还是如下两种jsonProtobuf总的来说没有最好的序列化方式,只有最适合的。如果我们要选用哪种序列化方式可以从如下业务需求去考虑兼容性性能是否跨语言可读性安全性。...原创 2022-08-09 10:00:00 · 782 阅读 · 0 评论 -
聊聊Netty那些事儿之从内核角度看IO模型
从今天开始我们来聊聊 Netty 的那些事儿,我们都知道 Netty 是一个高性能异步事件驱动的网络框架。它的设计异常优雅简洁,扩展性高,稳定性强。拥有非常详细完整的用户文档。同时内置了很多非常有用的模块基本上做到了开箱即用,用户只需要编写短短几行代码,就可以快速构建出一个具有,,,等特征的高并发网络应用程序。本文我们来探讨下支持 Netty 具有,特征的基石----netty 的。由 Netty 的开始,我们来正式揭开本系列 Netty 源码解析的序幕:当通过网络传输到达网卡时,网卡会将网络数据帧通过放到转载 2022-06-25 09:38:48 · 304 阅读 · 0 评论 -
简单深入理解高性能网络编程(Netty)中的Reactor模型(图文+代码)
文章目录定义传统网络交互方式Reactor 模型组成Netty中`Reactor`模型的实现Reactor 单线程模式非主从Reactor模式(单Reactor多线程模型)主从Reactor多线程模式定义Reactor模型就是网络服务器用来处理高并发网络IO请求的一种编程模型。传统网络交互方式一般我们网络交互都是基于客户端服务端模式,然后就会有如下事件当一个客户端和服务器要进行交互时,首先客户端会向服务端发送连接请求,和服务端建立连接。这就对应服务的的连接事件无论客户端给服务端发送读或写请求,原创 2021-10-31 22:27:40 · 1687 阅读 · 0 评论 -
基于netty实现一个简单的支持http和webSocket协议的的服务器(含xxl-job通信模块源码分析)
文章目录背景依赖包结构实现 WebSocketServer业务handler WebSocketServerHandler测试xxl-job 源码中基于netty实现的http总结参考背景上次看了下xxl-job,发现他的通信机制就是自己基于Netty实现了一个http服务器,然后发现自己看的不是很懂,就打算自己来实现一个简单的支持http协议和webSocket协议的服务器来帮助自己理解依赖 <dependency> <groupId>com.al原创 2021-10-06 12:41:27 · 1129 阅读 · 0 评论 -
初识Netty六(自定义协议(私有协议)开发)
文章目录实现功能通信模型Netty协议的编解码规范Netty协议解码代码实现依赖消息结构定义消息头定义 Header消息定义 NettyMessage消息类型定义 MessageType返回结果定义端口常量定义 NettyConstant消息编解码ChannelBufferByteInputChannelBufferByteOutputMarshallingCodecFactoryMarshallingDecoderMarshallingEncoderNettyMessageDecoderNettyMess原创 2020-06-02 00:22:39 · 1368 阅读 · 0 评论 -
初识Netty四(基于Netty的HTTP文件服务器开发)
文章目录演示代码下一章 基于Netty的WebSocket协议开发演示实现效果大致如下:启动 HttpFileServer访问连接点击文件也是可以直接下载代码HttpFileServer@Slf4jpublic class HttpFileServer { private static final String DEFAULT_URL = "/src/main"; public void run(final int port, final String url)原创 2020-05-31 00:47:02 · 501 阅读 · 0 评论 -
初识Netty三(基于MessagePack实现编解码)
MessagePack介绍目前主要的编解码:Java序列化MarshaligXMLJSONMessagePackProtobuf…本次编解码是使用 MessagePack实现的,MessagePack主要优点:高效跨语言官网解释:更多介绍请自行查看官网 MessagePack 使用引入依赖<dependency> <groupId>org.msgpack</groupId> <原创 2020-05-30 16:54:08 · 425 阅读 · 0 评论 -
初识Netty 二 (粘包拆包的简单处理DelimiterBasedFrameDecode自定义分隔符)
上一节我们基于netty简单构建了一个客户端服务器,相互发送消息,但是前提是不考虑占包和拆包的情况,今天我们来分析下占包和拆包什么是粘包,什么是拆包熟悉TCP的都知道,TCP是一个"流协议",所谓的流,就是没有界限的一串数据,连成一片的,比如我们客户端发送2个数据包A、B给服务器,而每次发送包的多少具体会根据TCP缓冲区的实际情况进行包的划分,所以A、B发送到服务器就会出现如下问题UDP就像邮寄包裹一样,虽然一次也是运输多个,但是每个包裹都有界限,一个一个签收,所以不会出现粘包、半包问题服.原创 2020-05-25 22:14:51 · 1134 阅读 · 0 评论 -
初识Netty 一 (基于Netty简单的客户端,服务器连接demo)
Netty依赖<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>5.0.0.Alpha1</version></dependency><!--其他可能用到的依赖--><dependency>原创 2020-05-24 23:55:55 · 571 阅读 · 0 评论