Netty4.x中文教程系列(四) 对象传输 我们在使用netty的过程中肯定会遇到传输对象的情况,Netty4通过ObjectEncoder和ObjectDecoder来支持。 首先我们定义一个User对象,一定要实现Serializable接口:package mjorcen.netty.o.....
分类:
Web程序 时间:
2014-09-26 13:27:48
阅读次数:
277
Netty4.x中文教程系列(四) ChannelHandler 上一篇文章详细解释了Hello World示例的代码。里面涉及了一些Netty框架的基础。 这篇文章用以解释ChannelHandler。笔者本身在以前写过文章ChannelHandler改动及影响和ChannelInitialize...
分类:
Web程序 时间:
2014-09-26 13:15:08
阅读次数:
315
1.下载并为项目添加Netty框架 1. Netty的包大家可以从Netty官网:http://netty.io/downloads.html下载如图所示: Netty提供了四个个主要版本的框架包给大家下载。3.9版本Final 说明这个版本是3.x版本中最新的版本。final意味着功能不再继续添加...
分类:
Web程序 时间:
2014-09-25 21:40:57
阅读次数:
325
1.定义proto文件:User.protopackage netty;option java_package="myprotobuf";option java_outer_classname="UserProto";message User{ required int32 ID=1; ...
分类:
其他好文 时间:
2014-09-25 14:09:49
阅读次数:
319
随着JVM虚拟机和JIT即时编译技术的发展,对象的分配和回收是个非常轻量级的工作。但是对于缓冲区Buffer,情况却稍有不同,特别是对于堆外直接内存的分配和回收,是一件耗时的操作。为了尽量重用缓冲区,Netty提供了基于内存池的缓冲区重用机制。性能测试表明,采用内存池的ByteBuf相比于朝生夕灭的ByteBuf,性能高23倍左右(性能数据与使用场景强相关)。
在4.x版本中,UnpooledB...
分类:
Web程序 时间:
2014-09-23 20:56:15
阅读次数:
425
HTTP协议应该是目前使用最多的应用层协议了,用浏览器打开一个网站就是使用HTTP协议进行数据传输。HTTP协议也是基于TCP协议,所以也有服务器和客户端。HTTP客户端一般是浏览器,当然还有可能是其他东西。HTTP服务器,也就是Web服务器,目前已经有很多成熟的产品,例如Apache HTTP Server、Tomcat、Nginx、IIS等。本文的内容不是讲解如何使用以上的HTTP服务器,而是...
分类:
Web程序 时间:
2014-09-23 20:35:54
阅读次数:
337
java.util.concurrent.Future是Java提供的接口,表示异步执行的状态,Future的get方法会判断任务是否执行完成,如果完成就返回结果,否则阻塞线程,直到任务完成。
// Java FutureTask.get()
public V get() throws InterruptedException, ExecutionException {
i...
分类:
Web程序 时间:
2014-09-23 14:11:04
阅读次数:
294
这个系列通过七篇文章,结合Netty5的原代码
1. 分析了服务器绑定端口的过程,从整体上可以看到Netty执行的流程和主要组件
2. 分析了Netty的线程模型,解析了Reactor模式。很多人都不理解这块,被EventLoop的名称和复杂的类层次所迷惑
3. 通过比较使用Java原生的NIO API来编程的流程,再分析了Netty是如何把这些基本流程封装地,进一步地理清了Netty的封装...
分类:
Web程序 时间:
2014-09-23 12:28:14
阅读次数:
226
Netty的ByteBuf缓冲区实现地比Java本身的ByteBuffer更加灵活,方便。它的类结构也比较复杂,这里只说ByteBuf核心的几个要点。
1. 最重要的是要理解为什么要ByteBuf这个组件。主要还是因为基于select / poll / epoll这种IO多路复用技术的NIO是非阻塞同步IO的模型,由于是同步IO,需要用户线程自己来处理IO的读写,由于是非阻塞的,每次调用...
分类:
Web程序 时间:
2014-09-22 19:06:32
阅读次数:
626
消息传递有很多种方式,请求/响应(Request/Reply)是最常用的。在前面的博文的例子中,很多都是采用请求/响应的方式,当服务器接收到消息后,会立即write回写一条消息到客户端。HTTP协议也是基于请求/响应的方式。但是请求/响应并不能满足所有的消息传递的需求,有些需求可能需要服务端主动推送...
分类:
Web程序 时间:
2014-09-22 11:20:02
阅读次数:
306