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阅读
  • 1
  • 2
  • 3
  • 4
  • 5