即时通讯技术文集(第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到底是什么 http://www.52im.net/thread-4146-1-1.html》,欢迎阅读!👈

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

posted on 2023-02-28 12:57  im中国人  阅读(28)  评论(0编辑  收藏  举报

导航

Jack Jiang的 Mail: jb2011@163.com, 个人主页: 点此进入 , 微信: hellojackjiang