Netty
文章平均质量分 92
小狼_百度
百度,web系统,分布式系统,大数据,机器学习,人工智能等爱好者
展开
-
Netty笔记:FrameDecoder
我们接下来就看和业务息息相关的解码器,首先我们来看FrameDecoder,这个东西应该是所有的解码器都会实现这个,所以我们来重点看一下。 FrameDecoder产生的根源就是TCP/IP数据包的传输方式决定的,包在传输的过程中会分片和重组,正如javadoc里面所说的: 客户端在发送的时候的序列如下:+-----+-----+-----+| ABC |转载 2013-10-11 18:07:45 · 7329 阅读 · 1 评论 -
netty源码分析之ChannelHandler
netty里面最重要的应该是ChannelHandler,这个里面也是用户编程直接打交道的接口,也是串行于ChannelPipeLine里面执行相应的业务逻辑。 从类结构来看,一个handler应该有一个ChannelHandlerContext,ChannelHandler是处在上层的一个标识接口,下面有两个接口分别来处理Upstream event和一个Downstr转载 2013-10-11 18:20:45 · 3006 阅读 · 0 评论 -
Netty长连接的事件处理顺序问题
最近的一个线上项目(认证服务器)老是出现服务延迟的情况。具体的问题描述:(1)客户端发送一个请求A(长连接),在服务器端的业务层需要20秒以上才能接收到。(2)客户端发送一个请求B(端连接),在服务器端的业务层可以迅速接收到。从现象大致知道问题出在服务器端的网络接收层,大量通过长连接发送过来的请求都堵塞在网络层得不到处理(在网络层排队,还没到应用层)。(友情提示:本博文章欢迎转载,转载 2013-10-11 18:41:49 · 2974 阅读 · 0 评论 -
关于netty的MemoryAwareThreadPoolExecutor
转载 2013-10-11 18:58:46 · 2510 阅读 · 0 评论 -
netty源码分析之ChannelFuture
在netty里面所有的nio相关的操作都是异步的,返回一个channelfuture对象,这个里面可以添加一些listener,然后再相关操作完成后进行触发,最主要的是通过这个对象可以查询相关操作的执行情况,是成功了,还是失败了。 我们来就来看看DefaultChannelFuture的实现就好,我们应该能猜到netty的思想,里面有一个listener的集合,addLis转载 2013-10-11 18:18:30 · 3828 阅读 · 0 评论 -
netty源码分析之ChannelPipeline
看了ChannelHandler我们就来看ChannelPipeline,这个类实现了责任链模式,我们就直接来看这个类的实现吧,看完后我们再看看javadoc的,这个写的很详细。 Java代码 static final InternalLogger logger = InternalLoggerFactory.getInstance(DefaultChan转载 2013-10-11 18:19:46 · 1478 阅读 · 0 评论 -
netty 使用注意事项
最近在使用netty的时候突然碰到这样的一个警告: Java代码 2010-8-11 12:20:28 org.jboss.netty.util.internal.SharedResourceMisuseDetector 警告: You are creating too many MemoryAwareThreadPoolExecutor instances. M转载 2013-10-11 19:05:55 · 6521 阅读 · 0 评论 -
架构设计:一种远程调用服务的设计构思(zookeeper的一种应用实践)
在深入学习zookeeper我想先给大家介绍一个和zookeeper相关的应用实例,我把这个实例命名为远程调用服务。通过对这种应用实例的描述,我们会对zookeeper应用场景会有深入的了解。 远程调用是系统与系统之间的通信机制,它的另一种理解就是进程间的通信。做分布式系统的开发,远程调用技术是其核心技术。远程调用技术可以将一组计算机系统形成一个网络系统,对外提供整体服务,那么这一群的计算机转载 2013-10-12 19:37:36 · 3526 阅读 · 1 评论 -
Netty系列之Netty线程模型
1. 背景1.1. Java线程模型的演进1.1.1. 单线程时间回到十几年前,那时主流的CPU都还是单核(除了商用高性能的小机),CPU的核心频率是机器最重要的指标之一。在Java领域当时比较流行的是单线程编程,对于CPU密集型的应用程序而言,频繁的通过多线程进行协作和抢占时间片反而会降低性能。1.1.2. 多线程随着硬件性能的提升,CPU的核数越来越越多,很多服务器标配转载 2014-07-16 10:29:02 · 16189 阅读 · 6 评论