即时通讯技术文集(第9期):Java NIO和Netty入门系列 [共19篇]

为了更好地分类阅读52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第9 期。

[-1-] 少啰嗦!一分钟带你读懂Java的NIO和经典IO的区别

[链接] http://www.52im.net/thread-2635-1-1.html

[摘要] 在本文中,将尝试用简明扼要的文字,阐明Java NIO和经典IO之间的差异、典型用例,以及这些差异如何影响我们的网络编程或数据传输代码的设计和实现的。

[-2-] 史上最强Java NIO入门:担心从入门到放弃的,请读这篇!

[链接] http://www.52im.net/thread-2640-1-1.html

[摘要] 本文作者厚积薄发,以远比一般的技术博客或技术作者更深厚的Java技术储备,为你由浅入深,从零讲解到底什么是Java NIO。本文即使没有多少 Java 编程经验的读者也能很容易地开始学习 NIO。

[-3-]Java的BIO和NIO很难懂?用代码实践给你看,再不懂我转行!

[链接] http://www.52im.net/thread-2846-1-1.html

[摘要]本文不会提到很多Java NIO和Java BIO的理论概念(需要的话请参见本文的“相关文章”一节),而是站在编码实践的角度,通过代码实例,总结了我自己对于Java NIO的见解。有了代码实践的过程后再重新回头看理论概念,会有一个不一样的理解视角,希望能助你吃透它们!

[-4-]Java新一代网络编程模型AIO原理及Linux系统AIO介绍

[链接] http://www.52im.net/thread-306-1-1.html

[摘要] 从JDK 7版本开始,Java新加入的文件和网络io特性称为nio2(new io 2, 因为jdk1.4中已经有过一个nio了),包含了众多性能和功能上的改进,其中最重要的部分,就是对异步io的支持,称为Java AIO(asynchronous IO)。因为AIO的实施需充分调用OS参与,IO需要操作系统支持、并发也同样需要操作系统的支持,所以性能方面不同操作系统差异会比较明显。所以本文也附带介绍了Linux 2.6及以后版本新增的AIO特性(因为这跟Java AIO是对应关系)。

[-5-] 新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析

[链接] http://www.52im.net/thread-2043-1-1.html

[摘要] Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目方面提供参考。

[-6-] 写给初学者:Java高性能NIO框架Netty的学习方法和进阶策略

[链接] http://www.52im.net/thread-2190-1-1.html

[摘要]Netty 入门相对简单,但是要在实际项目中用好它,出了问题能够快速定位和解决,却并非易事。只有在入门阶段扎实的学好 Netty,后面使用才能够得心应手。

[-7-] Netty 4.x学习(一):ByteBuf详解

[链接] http://www.52im.net/thread-99-1-1.html

[摘要]ByteBuf提供了一些较为丰富的实现类,逻辑上主要分为两种:HeapByteBuf和DirectByteBuf,实现机制则分为两种:PooledByteBuf和UnpooledByteBuf,除了这些之外,Netty还实现了一些衍生ByteBuf(DerivedByteBuf),如:ReadOnlyByteBufDuplicatedByteBuf以及SlicedByteBuf

[-8-] Netty 4.x学习(二):Channel和Pipeline详解

[链接] http://www.52im.net/thread-100-1-1.html

[摘要]Channel概念与java.nio.channel概念一致,用以连接IO设备(socket、文件等)的纽带。Netty 4.x之后的Channel变化较大,官方的唬人的说法是无法通过简单的关键字替换进行迁移。用得较多应该是:ChannelHandler接口重新设计,换了个较为清晰的名字;write不会主动flush。由于笔者3.x、4.x都没用过,所以也无法深入理解版本的变化了。

[-9-] Netty 4.x学习(三):线程模型详解

[链接] http://www.52im.net/thread-98-1-1.html

[摘要]为了更好的学习和理解Netty的线程模型,我在这里稍微详细的说一下我对它的理解。Reactor模式有多个变种,Netty基于Multiple Reactors模式(如下图)做了一定的修改,Mutilple Reactors模式有多个reactor:mainReactor和subReactor,其中mainReactor负责客户端的连接请求,并将请求转交给subReactor,后由subReactor负责相应通道的IO请求,非IO请求(具体逻辑处理)的任务则会直接写入队列,等待worker threads进行处理。

[-10-]详解Netty的安全性:原理介绍、代码演示(上篇)

[链接] http://www.52im.net/thread-426-1-1.html

[摘要] 作为一个高性能的NIO通信框架,基于Netty的行业应用非常广泛,不同的行业、不同的应用场景,面临的安全挑战也不同,下面我们根据Netty的典型应用场景,分析下Netty面临的安全挑战。

[-11-] 详解Netty的安全性:原理介绍、代码演示(下篇)

[链接] http://www.52im.net/thread-427-1-1.html

[摘要] 接上篇《详解Netty的安全性:原理介绍、代码演示(上篇)

[-12-] 详解Netty的优雅退出机制和原理

[链接] http://www.52im.net/thread-348-1-1.html

[摘要]“退出”是每个程序的必备功能,因为太平常,多数程序员都对这不以为然。但在大型分布式应用中,因各模块、服务等都是分布式部署和协作,这种RPC式的场景下,如何让某个模块或服务优雅地“退出”,则远非调用一个Kill指令这么简单。本文将详述NIO框架Netty是如何实现“优雅”地“退出”的。

[-13-] NIO框架详解:Netty的高性能之道

[链接] http://www.52im.net/thread-400-1-1.html

[摘要]下面我们就一起来看下Netty是如何支持10W TPS的跨节点远程服务调用的。

[-14-] Twitter:如何使用Netty 4来减少JVM的GC开销(译文)

[链接] http://www.52im.net/thread-97-1-1.html

[摘要] 可能有的人还没听说过Netty,它是一款开源的Java NIO框架,能让你更容易编写出高性能的网络服务器。前一个版本的Netty 3使用Java对象来表示IO事件。这样做比较简单,但会产生大量的垃圾,尤其是在我们这种规模下。最新的版本Netty 4中做了一些改进,短生命周期的事件对象已经不复存在了,而是通过生命周期较长的管道对象来处理IO事件。 同时还有一个专门的缓冲区分配器,它使用缓冲区池来进行实现。我们非常关注Netty项目的性能,可用性以及可持续性,也和Netty社区紧密合作以便全方位的对它进行完善。这里我们特别会提到的是,我们是如何使用Netty 3的,以及项目移植到Netty 4后带来的性能提升。

[-15-] 手把手教你用Netty实现网络通信程序的心跳机制、断线重连机制

[链接] http://www.52im.net/thread-2663-1-1.html

[摘要] 说到用Netty来开发IM或推送系统,以一个生产级产品的标准来说,最基本的心跳机制、断线重连机制肯定得有吧?好,如果你还不清楚这些,那就看看本文吧!

[-16-] 史上最通俗Netty框架入门长文:基本介绍、环境搭建、动手实战

[链接] http://www.52im.net/thread-3207-1-1.html

[摘要] 本文适合对Netty一无所知的Java NIO网络编程新手阅读,为了做到这一点,内容从最基本介绍到开发环境的配置,再到第一个Demo代码的编写,事无巨细都用详细的图文进行了说明。

[-17-] 绝对干货:基于Netty实现海量接入的推送服务技术要点

[链接] http://www.52im.net/thread-166-1-1.html

[摘要] 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题。由于咨询者众多,关注点也比较集中,我希望通过本文的案例分析和对推送服务设计要点的总结,帮助大家在实际工作中少走弯路。

[-18-] 长连接网关技术专题(一):京东京麦的生产级TCP网关技术实践总结

[链接] http://www.52im.net/thread-1243-1-1.html

[摘要] 本文重点介绍京麦TCP网关的技术架构及Netty的应用实践。

[-19-] 长连接网关技术专题(五):喜马拉雅自研亿级API网关技术实践

[链接] http://www.52im.net/thread-3564-1-1.html

[摘要] 本文将分享在喜马拉雅API网关在亿级流量前提下,进行的技术演进发展历程和实践经验总结。

👉52im社区本周新文:不为人知的网络编程(十五):深入操作系统,一文搞懂Socket到底是什么》,欢迎阅读!👈

我是Jack Jiang,我为自已带盐!https://github.com/JackJiang2011/MobileIMSDK/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容