写点什么

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

作者:JackJiang
  • 2023-02-28
    江苏
  • 本文字数:3221 字

    阅读完需:约 11 分钟

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

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

[-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到底是什么 http://www.52im.net/thread-4146-1-1.html》,欢迎阅读!👈

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

用户头像

JackJiang

关注

还未添加个人签名 2019-08-26 加入

开源IM框架MobileIMSDK、BeautyEye的作者。

评论

发布
暂无评论
即时通讯技术文集(第9期):Java NIO和Netty入门系列 [共19篇]_网络编程_JackJiang_InfoQ写作社区