Netty
文章平均质量分 77
无心六神通
金融科技系统架构师
展开
-
【笔记】redis-单机-57万QPS-实践
【笔记】redis-单机-57万QPS-实践原创 2024-08-17 11:12:07 · 329 阅读 · 0 评论 -
【笔记】单机100万QPS的ID生成器
【笔记】单机100万(百万)QPS的ID生成器原创 2024-08-11 19:14:35 · 689 阅读 · 0 评论 -
Netty中ChannelHandler的生命周期
首先我们先分析小网络连接的生命周期,连接建立 ---> 数据交互 ---> 连接断开,在数据交互阶段,包括从连接中读取数据和向连接中写入数据。知道了连接的生命周期,就可以按图索骥的在各个阶段进行想要的操作。而在Netty中,网络连接的不同生命周期都可以通过回调的方式来绑定相应的逻辑,这个回调接口就是。在使用Netty进行网络编程的时候,通常需要在网络连接的不同阶段进行相应的操作,比如在连接建立时,客户端向服务端发起认证,在接收到数据时对数据内容进行解析等等。那么,连接的不同阶段在netty中如何表示呢?原创 2024-07-21 11:06:11 · 444 阅读 · 0 评论 -
ByteBuf.release() was not called before it‘s garbage-collected
本文讨论了什么是引用技术对象,已经在netty中的应用和内存泄漏发生场景、检测、排除修复等技术手段原创 2024-07-14 12:30:47 · 672 阅读 · 0 评论 -
Dubbo3源码研读-消费者关键执行链路-HTTP/2多路复用-Stream会话-二进制帧分层
Dubbo3源码研读-消费者关键执行链路-HTTP/2多路复用-Stream会话-二进制帧分层原创 2024-07-13 20:31:08 · 161 阅读 · 0 评论 -
netty系列之:netty实现http2中的流控制
HTTP2相对于http1.1来说一个重要的提升就是流控制flowcontrol。为什么会有流控制呢?这是因为不管是哪种协议,客户端和服务器端在接收数据的时候都有一个缓冲区来临时存储暂时处理不了的数据,但是缓冲区的大小是有限制的,所以有可能会出现缓冲区溢出的情况,比如客户端向服务器端上传一个大的图片,就有可能导致服务器端的缓冲区溢出,从而导致一些额外的数据包丢失。为了避免缓冲区溢出,各个HTTP协议都提供了一定的解决办法。原创 2024-07-12 21:59:56 · 723 阅读 · 0 评论 -
Dubbo-消费端线程池模型优化
这样,相比于老的线程池模型,由业务线程自己负责监测并解析返回结果,免去了额外的消费端线程池开销。改进后的消费端线程池模型,通过复用业务端被阻塞的线程,很好的解决了这个问题。原创 2024-07-07 23:20:55 · 305 阅读 · 0 评论 -
通过 HTTP/2 协议案例学习 Java & Netty 性能调优:工具、技巧与方法论
Dubbo3 Triple 协议是参考 gRPC、gRPC-Web、Dubbo2 等协议特点设计而来,它吸取各自协议特点,完全兼容 gRPC、Streaming 通信、且无缝支持 HTTP/1 和浏览器。当你在 Dubbo 框架中使用 Triple 协议,然后你就可以直接使用 Dubbo 客户端、gRPC 客户端、curl、浏览器等访问你发布的服务,不需要任何额外组件与配置。原创 2024-07-07 22:36:08 · 889 阅读 · 0 评论 -
Netty http2 多路复用
关键是该register方法会调用该channel的unsafe的register方法,DefaultHttp2StreamChannel由自己的unsafe,叫Http2ChannelUnsafe,下面我们看下该Http2ChannelUnsafe的register方法。一般rpc 框架要实现多路复用,都在发送的报文里携带请求唯一标示ID,netty http2在handler 层就已经隔离了不同stream之间的frame。通过上面的分析,总结下,在http2的协议下,netty实现多路复用,是。原创 2024-07-07 21:33:25 · 303 阅读 · 0 评论 -
Netty - Native transports 本地传输
与基于NIO的传输相比,这些JNI传输添加了特定于平台的特性,生成的垃圾更少,并且通常提高了性能.原创 2024-06-23 18:04:41 · 873 阅读 · 0 评论 -
netty确实牛逼,性能比肩redis,实践压测
redisnetty服务端IO线程11服务端工作线程11TCP连接数6565客户端IO线程数22请求次数2000020000QPS7490次/秒7513次/秒平均响应时间0.134毫秒0.133毫秒netty的性能的确可以比肩redis。原创 2024-06-18 22:45:46 · 560 阅读 · 0 评论 -
从TCP报文观测undertow和redis的性能差异
从TCP报文观测undertow和redis的性能差异。原创 2024-06-17 00:01:50 · 327 阅读 · 0 评论 -
零拷贝原理讲解
关于零拷贝,我们主要要解决的是问题是几次没有意义的copy,而使得数据能够直接从内核缓冲copy到网卡的buf中,为了解决这个问题,我们需要操作系统的支持。Linux内核从2.4开始,就支持这一特性。原创 2024-05-31 05:43:00 · 829 阅读 · 0 评论 -
Netty-优化与源码
注意发送的数据未必能够一次读完,因此会触发多次 nio read 事件,一次事件内会触发多次 pipeline read,一次事件会触发一次 pipeline read complete。SO_TIMEOUT 主要用在阻塞 IO,阻塞 IO 中 accept,read 等都是无限等待的,如果不希望永远阻塞,使用它调整超时时间。在 linux 2.2 之前,backlog 大小包括了两个队列的大小,在 2.2 之后,分别用下面两个参数来控制。主要任务是执行死循环,不断看有没有新任务,有没有 IO 事件。原创 2024-02-11 09:17:46 · 825 阅读 · 0 评论 -
Netty-进阶
魔数,用来在第一时间判定是否是无效数据包版本号,可以支持协议的升级序列化算法,消息正文到底采用哪种序列化反序列化方式,可以由此扩展,例如:json、protobuf、hessian、jdk指令类型,是登录、注册、单聊、群聊... 跟业务相关请求序号,为了双工通信,提供异步能力正文长度消息正文/*** 用户管理接口*//*** 登录* @param username 用户名* @param password 密码。原创 2024-02-11 09:15:55 · 768 阅读 · 0 评论 -
Netty-入门
Netty 是一个异步的、基于事件驱动的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端他还是另一个著名网络应用框架 Mina 的重要贡献者Netty 在 Java 网络应用框架中的地位就好比:Spring 框架在 JavaEE 开发中的地位以下的框架都使用了 Netty,因为它们有网络通信需求!开发一个简单的服务器端和客户端加入依赖# 2.2 服务器端代码解读1 处,创建 NioEventLoopGroup,可以简单理解为 后面会详细展开2 处,选择服务 Scoket 实现类原创 2024-02-11 09:14:26 · 832 阅读 · 0 评论 -
Netty-NIO 基础
non-blocking io 非阻塞 IO。原创 2024-02-11 09:11:23 · 860 阅读 · 0 评论 -
Netty-常见面试题-总结
👨💻面试官:Netty 核心组件有哪些?分别有什么作用?🙋我:表面上,嘴上开始说起 Netty 的核心组件有哪些,实则,内心已经开始 mmp 了,深度怀疑这面试官是存心搞我啊!简单介绍 Netty 最核心的一些组件(对于每一个组件这里不详细介绍)。通过下面这张图你可以将我提到的这些 Netty 核心组件串联起来。这么说吧!EventLoop(事件循环)接口可以说是 Netty 中最核心的概念了!原创 2024-02-11 09:08:45 · 857 阅读 · 0 评论