
netty-mina源码分析
u010154380
这个作者很懒,什么都没留下…
展开
-
netty初步,与各个版本的比较
1.入门文档如果是入门的话,官网的文档已经相当好了。里面的例子程序得仔细阅读,这里就不再重复转载了。参见http://netty.io/wiki/user-guide.html2.为什么需要netty2.1 主要是scalibity和performance2.2 另外Netty In Action有一些说明,笔记如下:2.2.1 传统的异步编程有2种模式:callb转载 2015-07-21 16:40:20 · 14504 阅读 · 1 评论 -
一起学Netty(九)之LengthFieldBasedFrameDecoder
之前介绍了Netty天然的几种解析器,也稍微介绍了一下ByteToMessageDecoder类,我们对Netty的解码器还是有了一定的了解~今天要介绍的是Netty中一个很重要的解码器,因为相比于其他的普通的解码器,这个解码器用的场景更多,并不是说其他解码器不重要,只是因为我们业务场景所致在当今比较流行的水平拆分的架构之下,RPC协议很是流行,这样可以使各转载 2017-10-04 22:32:14 · 273 阅读 · 0 评论 -
一起学Netty(十一)之 Netty心跳之IdleStateHandler
Netty提供了对心跳机制的天然支持,心跳可以检测远程端是否存活,或者活跃今天我们就一起初识一下Netty4的心跳机制Netty4.0提供了一个类,名为IdleStateHandler,这个类可以对三种类型的心跳检测这个类的构造参数是这样的:前三个的参数解释如下:1)readerIdleTime:为读超时时间(转载 2017-10-04 22:47:52 · 514 阅读 · 0 评论 -
一起学Netty(十二)之 Netty心跳简单Demo
前面简单地了解了一下IdleStateHandler,我们现在写一个简单的心跳demo:1)服务器端每隔5秒检测服务器端的读超时,如果5秒没有接受到客户端的写请求,也就说服务器端5秒没有收到读事件,则视为一次超时2)如果超时二次则说明连接处于不活跃的状态,关闭ServerChannel3)客户端每隔4秒发送一些写请求,这个请求相当于一次心跳包,告之服务器端:客户端仍旧活着转载 2017-10-04 23:17:26 · 201 阅读 · 0 评论 -
一起学Netty(十八)netty源码学习之netty server端源码初读(上)
server端是使用了Reactor模式对nio进行了一些封装,Reactor模式网上有很多资料,不赘述,了解了这个模式开始看源码netty的版本是4.0.21.Final[html] view plain copydependency> groupId>io.nettygroupId> art转载 2017-10-04 23:19:34 · 208 阅读 · 0 评论 -
一起学Netty(二十)netty的比较规范的C/S端的写法
看了RPC框架Jupiter的源码和RocketMQ的Netty部分的代码,最后还是总结一下,把与Netty相关的代码都截取出来,写出一个比较规范的DEMO这个DEMO还是比较简单的,但麻雀虽小五脏俱全啊,有心跳,有重连,有ack的,可以与大家分享一下~https://github.com/BazingaLyn/netty-study/tree/master翻译 2017-10-04 23:25:42 · 348 阅读 · 0 评论 -
一起学Netty(十三)之 Netty简单的重连机制
其实重连机制并不是多么多高深的技术,其实就是一个在客户端做一个简单的判断,如果连接断了,那么就重新调用连接服务端的代码当然,我们重连的动作肯定是发生在断连之后发生的,我们可以在上篇的心跳机制的基础上,简单地修改一下客户端的启动代码就可以了:我们在连接断了之后,我们一般会在finally的方法中去释放资源,这边我们应该不去释放资源,我们在finally里面进行转载 2017-10-05 10:17:37 · 303 阅读 · 0 评论 -
一起学Netty(十四)之 Netty生产级的心跳和重连机制
sigh,写这篇博客的时候老脸还是红了一下,心里还是有些唏嘘的,应该算是剽窃吧,每个人的代码功力的确是有差距的,好在文章的标题是“一起学”,而不是开涛大神的“跟我学”系列的文章,我们还是多花点时间学习吧,感叹无用~最近工作比较忙,但闲暇之余还是看了阿里的冯家春(fengjiachun)的github上的开源代码Jupiter,写的RPC框架让我感叹人外有人,废话不多说,下面的代转载 2017-10-05 10:40:34 · 246 阅读 · 0 评论 -
一起学Netty(十五)之 AttributeMap属性
本来没打算研究这个东西的,一开始觉得没啥用,甚至觉得这个东西有点鸡肋,不过慢慢接触之后,发现了这个AttributeMap的重要性初学这个东西,我们还是先理解AttributeMap的用法吧1)AttributeMap这是是绑定在Channel或者ChannelHandlerContext上的一个附件,相当于依附在这两个对象上的寄生虫一样,相当于附件一样,如图所示:转载 2017-10-05 10:43:35 · 381 阅读 · 0 评论 -
一起学Netty(十五)之 AttributeMap属性
本来没打算研究这个东西的,一开始觉得没啥用,甚至觉得这个东西有点鸡肋,不过慢慢接触之后,发现了这个AttributeMap的重要性初学这个东西,我们还是先理解AttributeMap的用法吧1)AttributeMap这是是绑定在Channel或者ChannelHandlerContext上的一个附件,相当于依附在这两个对象上的寄生虫一样,相当于附件一样,如图所示:转载 2017-10-05 11:30:33 · 516 阅读 · 0 评论 -
netty源码分析之服务端启动全解析
netty 是一个异步事件驱动的网络通信层框架,其官方文档的解释为Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies an转载 2017-11-01 23:35:00 · 276 阅读 · 0 评论 -
深入阅读Mina源码(3) —— Mina之IOAdapter(二)
深入阅读Mina源码(3) —— Mina之IOAdapter(二) 4. AbstractPollingIoAcceptor 这个类在org.apache.mina.core.polling,这个包一共有四个类,这个类就可以代表整个包的内容了,细致说一下,之后就不再深入介绍这个包了。从名字可以看出包里面的类主要完成轮询。 AbstractPoll转载 2017-12-05 19:54:08 · 181 阅读 · 0 评论 -
一起学Netty(六)之 TCP粘包拆包场景
TCP编程底层都有粘包和拆包机制,因为我们在C/S这种传输模型下,以TCP协议传输的时候,在网络中的byte其实就像是河水,TCP就像一个搬运工,将这流水从一端转送到另一端,这时又分两种情况:1)如果客户端的每次制造的水比较多,也就是我们常说的客户端给的包比较大,TCP这个搬运工就会分多次去搬运。2)如果客户端每次制造的水比较少的话,TCP可能会等客户端多次生产之后,把所有的水一起转载 2017-10-04 16:58:33 · 474 阅读 · 0 评论 -
一起学Netty(五)之 初识ByteBuf和ByteBuf的常用API
网络传输的载体是byte,这是任何框架谁也逃脱不了的一种规定,JAVA的NIO提供了ByteBuffer,用来完成这项任务,当然ByteBuffer也很好的完成了这个任务,Netty也提供了一个名字很相似的载体叫做ByteBuf,相比于ByteBuf而言,它有着更加更多友善的API,也更加易于维护,并且它可以扩容一般来说,ByteBuf都是维护一个byte数组的,它转载 2017-10-04 16:43:49 · 306 阅读 · 0 评论 -
一起学Netty(四)之 ChannelHandler,ChannelHandlerContext,ChannelPipeline
本小节一起学习一下ChannelHandler,ChannelHandlerContext,ChannelPipeline这三个Netty常用的组件,不探究它们的底层源码,我们就简单的分析一下用法首先先分析一下ChannelHandler,ChannelHandler是我们日常开发中使用最多的组件了,大概我们平时写的最多的组件就是Handler了,继承图如下转载 2017-10-04 16:32:40 · 820 阅读 · 0 评论 -
netty 中MemoryAwareThreadPoolExecutor 简单分析
netty 中MemoryAwareThreadPoolExecutor 图形原创 2015-07-21 17:16:10 · 686 阅读 · 0 评论 -
Netty系列之Netty高性能之道
Netty系列之Netty高性能之道netty目录[-]1. 背景1.1. 惊人的性能数据数据分析与企业架构京东618大促下的数据驱动个性化推荐如何构建软硬件结合的人工智能产品研发体系中国创新型互联网企业走向海外的技术机遇与挑战LinkedIn成员分类平台大数据应用的最佳实践1.2. Netty基础入门2. Netty高性能之道2.1. RPC调用的性能模型转载 2015-07-21 18:04:49 · 499 阅读 · 0 评论 -
Java高级面试含架构师
Java高级面试含架构师标签: 架构2016-11-25 16:04 3090人阅读 评论(0) 收藏 举报目录(?)[+]JDK1.5新增的功能 ==>>>字符流和字节流的区别,使用场景,相关类 ==>>>线程安全的概念,实现线程安全的几种方法 ==>>>抽象类和接口的区别,使用场景 ==>>>hash算法的实现转载 2016-12-10 11:48:11 · 14762 阅读 · 0 评论 -
集群、分布式、负载均衡区别与联系
集群、分布式、负载均衡区别与联系应用服务器算法Linux网络应用C++ 1、Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)(下面只介绍负载均衡集群)负载均衡集群(Load Balance Cluster)负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。负转载 2017-03-08 10:04:32 · 282 阅读 · 0 评论 -
ServerSocketChannel的用法详解
ServerSocketChannel的用法详解在用nio通讯的过程我用以下情景给你模拟: 1. 学校(ServerSocketChannel) 2。 学校教务处(Selector) 3。 老师 (ServerSocket ) 4。 学生 (SocketChannel) 5。 员工号/学生号(SelectionKey) 学校:相当于我们的网络应用程序,一旦学校启动,学校就不停止,转载 2017-03-21 12:06:36 · 5864 阅读 · 2 评论 -
文章标题
《Java 源码分析》:Java NIO 之 SelectionKey在ServerSocketChannel源码分析中我们知道当把一个channel注册到指定的Selector上时, 实际上就是将(channel,selector)封装成了一个SelectionKey对象,并将此对象保存在了Selector对象中。SelectionKeyImpl k = new SelectionKeyImpl转载 2017-03-21 14:41:25 · 212 阅读 · 0 评论 -
选择Netty的理由
《Netty 权威指南》—— 选择Netty的理由声明:本文是《Netty 权威指南》的样章,感谢博文视点授权并发编程网站发布样章,禁止以任何形式转载此文。在开始本节之前,我先讲一个亲身经历的故事:曾经有两个项目组同时用到了NIO编程技术,一个项目组选择自己开发NIO服务端,直接使用JDK原生的API,结果2个多月过去了,他们的NIO服务端始终无法稳定,问题频出。由于NIO通信是它们的核心组件之一,转载 2017-03-21 16:28:01 · 3227 阅读 · 0 评论 -
Java直接内存和堆内存的性能比较
Java直接内存和堆内存的性能比较在JDK 1.4中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆里面的DirectByteBuffer对象作为这块内存的引用进行操作。这样能在一些场景中显著提高性能,因为避免了在Java转载 2017-03-22 16:21:04 · 804 阅读 · 0 评论 -
Netty的高性能及NIO的epoll空轮询bug
Selector BUG出现的原因若Selector的轮询结果为空,也没有wakeup或新消息处理,则发生空轮询,CPU使用率100%,Netty的解决办法对Selector的select操作周期进行统计,每完成一次空的select操作进行一次计数,若在某个周期内连续发生N次空轮询,则触发了epoll死循环bug。重建Selector,判断是转载 2017-10-04 12:11:03 · 2053 阅读 · 0 评论 -
一起学Netty(一)
一起学Netty(一)之 Hello Netty maven的依赖,我们如下:[html] view plain copydependencies> dependency> groupId>junitgroupId> artifactId转载 2017-10-04 15:39:32 · 356 阅读 · 0 评论 -
一起学Netty(二)之 Hello Netty的原型图解
上一个小节,写的一个入门的Hello Netty的案例,它的模型其实很简单,我们画个简单的图理解一下[java] view plain copypackage com.lyncc.netty.concept; /** * * @author Bazingalyncc * 描述: * 时间 2016年4转载 2017-10-04 16:14:08 · 503 阅读 · 0 评论 -
一起学Netty(三)之 SimpleChannelInboundHandler
其实Netty的知识点还是很零碎的,比如这个SimpleChannelInboundHandler这个类,在《Netty in Action》该书中的原版的Hello world的demo的客户端就是使用的SimpleChannelInboundHandler来作为处理器的,我本来也是使用这个类作为我处理类的,但是做一个新手,这个类还是让我走了一点弯路,我们可以看到SimpleChannelInb转载 2017-10-04 16:18:51 · 1650 阅读 · 0 评论 -
Netty学习之旅------线程模型前置篇Reactor反应堆设计模式实现(基于java.nio)
Netty学习之旅------线程模型前置篇Reactor反应堆设计模式实现(基于java.nio) ...转载 2018-03-03 18:10:57 · 241 阅读 · 0 评论