首页 > 编程语言 >即时通讯技术文集(第9期):Java NIO和Netty入门系列 [共19篇]

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

时间:2023-02-28 13:11:24浏览次数:58  
标签:Netty Java NIO thread html im net

为了更好地分类阅读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网关在亿级流量前提下,进行的技术演进发展历程和实践经验总结。

标签:Netty,Java,NIO,thread,html,im,net
From: https://www.cnblogs.com/imteck4713/p/17163628.html

相关文章

  • JavaScript Data Types 7+1
    说明......
  • Java连接数据库
    对于Java数据库操作,需要先导入JDBC相关的包,然后连接数据库。连接数据库有以下几个步骤:1.加载JDBC驱动类Class.forName("com.mysql.jdbc.Driver");2.创......
  • java 线程安全(三) volatile
    一、volatile关键字说明volatile是Java提供的一种轻量级的同步机制。Java语言包含两种内在的同步机制:同步块(或方法)和volatile变量,相比于synchronized(synchronized通常......
  • java 线程安全(二)CAS操作
    为了把关于线程相关的内容搞清楚,在synchronized一节中有提到CAS这个操作一、什么是CAS?CAS,compare andswap的缩写,中文翻译成比较并交换。JDK提供的非阻塞原子性操作,它......
  • 什么是MinIO
    什么是MinIO?MinIO是一款高性能、分布式的对象存储系统.它是一款软件产品,可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。MinIO提供高性能、S3......
  • oracle锁表,java代码修改方式如下
    selectb.owner,b.object_name,a.session_id,a.locked_modefromv$locked_objecta,dba_objectsbwhereb.object_id=a.object_id;selectb.username,b.sid,b.serial#,l......
  • 【java】一些基础小知识
    重写重载:重写:是继承时对父类的方法重写该方法内容,方法类型是不变的,即返回类型,方法名字,参数都不变。值得注意的是可以改变权限,只能提高不能降低重载:是一个类中有多个名字......
  • java网络编程-线程池服务端
    上篇文章我们借助线程实现了服务端可以服务多个客户端,但是每次请求进来都创建新线程也是一种很大的资源消耗,线程上下文切换都会影响性能。本次我们继续对服务端进行改造,引......
  • java调用c++的几种方式
    jni类似c#调用c++的方式,定义java端的c++代码接口。packagecrayon.jni;publicclassJNITest{publicnativestaticvoidset(inti);publicna......
  • Java学习笔记12
    正则表达式1.概述​ 在Java中,我们经常需要验证一些字符串,例如:年龄必须是2位的数字、用户名必须是8位长度而且只能包含大小写字母、数字等。正则表达式就是用来验证各种字......