代码改变世界

随笔分类 -  netty

这可能是目前最透彻的Netty原理架构解析

2019-07-24 22:36 by Loull, 3800 阅读, 收藏, 编辑
摘要: https://juejin.im/post/5be00763e51d453d4a5cf289 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目方面提供参考。 Netty 是一个异步事件驱动的网络应用程序框架 阅读全文

自顶向下深入分析Netty(七)--ChannelPipeline和ChannelHandler总述

2019-04-29 16:00 by Loull, 638 阅读, 收藏, 编辑
摘要: 自顶向下深入分析Netty(七)--ChannelPipeline和ChannelHandler总述 自顶向下深入分析Netty(七)--ChannelPipeline源码实现 自顶向下深入分析Netty(七)--ChannelHandlerContext源码实现 像以往一样,继续回顾这幅图。目前为 阅读全文

自顶向下深入分析Netty(六)--Channel总述

2019-04-28 17:36 by Loull, 7065 阅读, 收藏, 编辑
摘要: 自顶向下深入分析Netty(六)--Channel总述 自顶向下深入分析Netty(六)--Channel源码实现 6.1 总述 6.1.1 Channel JDK中的Channel是通讯的载体,而Netty中的Channel在此基础上进行封装从而赋予了Channel更多的能力,用户可以使用Chan 阅读全文

Netty中的那些坑

2019-03-25 11:38 by Loull, 2084 阅读, 收藏, 编辑
摘要: Netty中的那些坑(上篇) 最近开发了一个纯异步的redis客户端,算是比较深入的使用了一把netty。在使用过程中一边优化,一边解决各种坑。儿这些坑大部分基本上是Netty4对Netty3的改进部分引起的。 注:这里说的坑不是说netty不好,只是如果这些地方不注意,或者不去看netty的代码, 阅读全文

自顶向下深入分析Netty(五)--Future

2019-03-22 17:24 by Loull, 1233 阅读, 收藏, 编辑
摘要: 再次回顾这幅图,在上一章中,我们分析了Reactor的完整实现。由于Java NIO事件驱动的模型,要求Netty的事件处理采用异步的方式,异步处理则需要表示异步操作的结果。Future正是用来表示异步操作结果的对象,Future的类签名为: public interface Future<V>; 阅读全文

自顶向下深入分析Netty(三)--Bootstrap

2019-03-22 16:57 by Loull, 381 阅读, 收藏, 编辑
摘要: 自顶向下深入分析Netty(一)--预备知识 自顶向下深入分析Netty(二)--线程模型 自顶向下深入分析Netty(三)--Bootstrap 自顶向下深入分析Netty(四)--EventLoop-1 自顶向下深入分析Netty(四)--EventLoop-2 自顶向下深入分析Netty(四) 阅读全文

【转】目前为止最透彻的的Netty高性能原理和框架架构解析

2019-02-18 20:48 by Loull, 1690 阅读, 收藏, 编辑
摘要: 转自:https://zhuanlan.zhihu.com/p/48591893 1、引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然 阅读全文

Netty笔记

2019-02-18 20:20 by Loull, 567 阅读, 收藏, 编辑
摘要: 堆外内存增涨异常 Netty 系列之 Netty 百万级推送服务设计要点 如何设置Netty的接收Buffer为堆内存模式 Netty 基本组件小结--Channel、EventLoop、Bootstrap等 关于Netty的ByteBuff内存泄漏问题 堆外内存的回收机制分析 Netty堆外内存回 阅读全文

Linux下Netty实现高性能UDP服务(SO_REUSEPORT)

2019-02-18 20:03 by Loull, 4482 阅读, 收藏, 编辑
摘要: 参考: https://www.jianshu.com/p/61df929aa98b SO_REUSEPORT学习笔记:http://www.blogjava.net/yongboy/archive/2015/02/12/422893.html 代码示例:https://www.programcre 阅读全文

Netty通信网络参数配置

2017-07-03 17:09 by Loull, 10306 阅读, 收藏, 编辑
摘要: Netty服务端/客户端网络通信过程中常用的参数: Name Associated setter method "writeBufferHighWaterMark" 默认64 * 1024(用法未知) "writeBufferLowWaterMark" 默认32 * 1024(用法未知) "writ 阅读全文

用Netty开发中间件:高并发性能优化

2016-02-02 15:26 by Loull, 23094 阅读, 收藏, 编辑
摘要: 用Netty开发中间件:高并发性能优化 最近在写一个后台中间件的原型,主要是做消息的分发和透传。因为要用Java实现,所以网络通信框架的第一选择当然就是Netty了,使用的是Netty 4版本。Netty果然效率很高,不用做太多努力就能达到一个比较高的tps。但使用过程中也碰到了一些问题,个人觉得都 阅读全文

Netty之Java堆外内存扫盲贴

2016-01-29 17:46 by Loull, 3362 阅读, 收藏, 编辑
摘要: Java的堆外内存本来是高贵而神秘的东西,只在一些缓存方案的收费企业版里出现。但自从用了Netty,就变成了天天打交道的事情,毕竟堆外内存能减少IO时的内存复制,不需要堆内存Buffer拷贝一份到直接内存中,然后才写入Socket中;而且也没了烦人的GC。 好在,Netty所用的堆外内存只是Java 阅读全文

Netty writeAndFlush() 流程与异步

2016-01-29 15:10 by Loull, 2103 阅读, 收藏, 编辑
摘要: Netty writeAndFlush()方法分为两步, 先 write 再 flush @Override public ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) { DefaultChannelHandlerC 阅读全文

Netty之有效规避内存泄漏

2016-01-29 11:31 by Loull, 14778 阅读, 收藏, 编辑
摘要: 有过痛苦的经历,特别能写出深刻的文章 —— 凯尔文. 肖 直接内存是IO框架的绝配,但直接内存的分配销毁不易,所以使用内存池能大幅提高性能,也告别了频繁的GC。但,要重新培养被Java的自动垃圾回收惯坏了的惰性。 Netty有一篇必读的文档 官方文档翻译:引用计数对象 ,在此基础上补充一些自己的理解 阅读全文