Netty入门 	Netty 是业界最流行的NO框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都是首屈一指的,它已经得到成百上千的商用项目验证,例如 Hadoop的RPC框架Avro就使用了Nety作为底层通信框架,其他还有业界主流的RPC框架,也使用Nety来构建高性能的异步通 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-07 10:07:00
                            
                                177阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            1、Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-12-14 11:09:00
                            
                                154阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            netty源码分析netty模型selector模式对普通NIO的性能提升NIO可以同时使用多个selector是...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-03-08 10:25:29
                            
                                194阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            本章节分析Netty中的ChannelPipeline模块。
每个channel内部都会持有一个ChannelPipeline对象pipeline.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-30 14:37:27
                            
                                446阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             O ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-05 08:51:00
                            
                                193阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            上一章节中,我们分析了Netty服务的启动过程,本章节分析Netty的NioEventLoop是如工作的。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-29 16:50:04
                            
                                285阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Netty的ByteBuf是JDK中ByteBuffer的升级版,提供了NIO buffer和byte数组的抽象视图。ByteBuf的主要类集成关系:(图片来自Netty权威指南,图中有一个画错的地方是PooledByteBuf中的最后一个子类应该是PooledUnsafeDirectByteBuf)从继承关系可以看出AbstractReferenceCountedByteBuf的子类分为两类:P            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-07-10 10:07:52
                            
                                785阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            /* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:33:32
                            
                                280阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            这个类的作用是用户传递一个消息和一个Promise对象,但是实际编码时把一个消息转化为多个消息输出,那么实际会生成多个Promise对象,PromiseCombiner的作用就是代理用户传递的Promise,当所有消息输出操作完成时,通知用户。/* * Copyright 2016 The Netty Project * * The Netty Project licenses ...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:33:39
                            
                                185阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            MessageToByteEncoder是一个抽象编码器,子类可重新encode方法把对象编码为ByteBuf输出。源码分析package io.netty.handler.codec;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.Channel...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:33:43
                            
                                722阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            MultithreadEventExecutorGrouppublic abstract class MultithreadEventExecutorGroup extends AbstractEventExecutorGroup {    private final EventExecutor[] children;    private final Set<Event...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:37:49
                            
                                309阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            DefaultPriorityQueue保证队列元素的顺序性,在add和poll元素时会移动元素,根据元素大小重新排列数据在元素中的位置,保证元素的顺序性。package io.netty.util.internal;import java.util.AbstractQueue;import java.util.Arrays;import java.util.Comparat...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:37:53
                            
                                239阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            PromiseTask源码分析package io.netty.util.concurrent;import java.util.concurrent.Callable;import java.util.concurrent.RunnableFuture;//封装一个任务,该类的成功与失败状态只能由执行结果决定,不能通过外部设置class PromiseTask<V...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:37:57
                            
                                272阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            WebSocketServerProtocolHandshakeHandler源码分析class WebSocketServerProtocolHandshakeHandler extends ChannelInboundHandlerAdapter {    private final String websocketPath;    private final String ...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:40:33
                            
                                452阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            package io.netty.buffer;final class HeapByteBufUtil {    //读取一个字节    static byte getByte(byte[] memory, int index) {        return memory[index];    }    //读取二个字节short    static short g...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:42:22
                            
                                343阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ReplayingDecoder可以重复解码的解码器,此类的核心原理是内部包含了一个ReplayingDecoderByteBuf,当读取字节不够时则抛出异常,ReplayingDecoder捕获异常还原读取readerIndex然后等待Netty下一次事件继续读取。ReplayingDecoderByteBuf集成了Bytebuf,它代理了ByteBuf当中读取的方法。final...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:49:05
                            
                                227阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            package java.util.concurrent;public class ExecutorCompletionService<V> implements CompletionService<V> {    //用来执行具体任务    private final Executor executor;    //用来封装Callable或Runnab...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:50:47
                            
                                183阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            public final class DefaultEventExecutorChooserFactory implements EventExecutorChooserFactory {	//单例模式    public static final DefaultEventExecutorChooserFactory INSTANCE = new DefaultEventExec...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:51:27
                            
                                164阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            FastThreadLocal源码分析public class FastThreadLocal<V> {	//这个值是FastThreadLocal的静态变量,所有的FastThreadLocal都用这个值,它是唯一的。	//在InternalThreadLocalMap有一个Object类型的数组indexedVariables	//那么indexedVariable...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:52:44
                            
                                161阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            //Constant接口,继承了Comparablepublic interface Constant<T extends Constant<T>> extends Comparable<T> {    //ID    int id();    //名字    String name();}//一个池对象,内部只能存放Con...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 10:52:46
                            
                                386阅读