Java NIO编程(Netty框架)
文章平均质量分 85
西瓜游侠
希望自己能够开心
展开
-
同步阻塞式I/O模型
参考:《Netty权威指南》同步阻塞式I/O,即BIO。原理:服务器端通常由一个独立的Acceptor负责监听客户端的连接,它接收到客户端请求之后为每个请求创建一个新的线程进行链路处理,处理完成通过输出流返回应答给客户端,并销毁线程。是典型的一请求一应答 模型。缺点:缺乏弹性,当并发访问量增加,由于大量的开辟线程导致系统性能急剧下降,系统可能发生线程堆栈溢出、创建新线程失败原创 2016-11-10 19:23:20 · 500 阅读 · 0 评论 -
Netty框架及源码知识点
1、Netty的网络模型http://blog.csdn.net/hbtj_1216/article/details/753319952、Reactor模式和Proactor模式http://blog.csdn.net/hbtj_1216/article/details/753497313、select、poll、epoll详解http://blog.csdn.net/hbtj_1216/artic原创 2017-08-08 21:03:18 · 1110 阅读 · 0 评论 -
TCP 粘包 和 拆包
本文来源:《Netty权威指南》TCP 粘包/拆包TCP 是一个“流”协议,没有分界线。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分。粘包/拆包现象:如下图,客户端发送两个数据包D1和D2到服务器,会出现以下4种情况:(1)服务端分两次读取,获得两个独立的数据包,分别D1和D2,这种情况下没有粘包/拆包问题。转载 2016-12-08 16:29:12 · 2403 阅读 · 0 评论 -
Java NIO中的Buffer、Channel和Selector的概念和作用
转载: http://ginobefunny.com/post/java_nio_interview_questions/ http://www.jianshu.com/p/0520350372971、Buffer(缓冲区)使用数组的方式不够灵活且性能差,Java NIO的缓冲区功能更加强大;容量(capacity)表示缓冲区的额定大小,需要在创建时指定(allocate静态方法);读写限制(l转载 2017-07-31 20:40:57 · 5178 阅读 · 1 评论 -
Reactor模式和Proactor模式
Reactor模式和Proactor模式同步I/O和异步I/O 同步I/O: 在同步文件IO方式中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行。 异步I/O: 在异步文件IO方式中,线程发送一个IO请求到内核,然后该线程继续处理其他的事情,内核完成IO请求后,将会通知线程IO操作完成了。Reactor模式和Proactor模式1. 标准定义一般地,I转载 2017-07-19 12:58:22 · 454 阅读 · 0 评论 -
java.nio.Buffer 中的 flip()方法
转载:http://www.cnblogs.com/woshijpf/articles/3723364.html 在Java NIO编程中,对缓冲区操作常常需要使用 java.nio.Buffer中的 flip()方法。 Buffer 中的 flip() 方法涉及到 Buffer 中的Capacity、Position、Limit三个概念。原创 2016-11-11 16:29:15 · 25603 阅读 · 7 评论 -
Netty网络模型
Netty网络模型网络服务器的基本功能(流程)就是: 建立连接 -> 读取请求 -> 解析请求 -> 调用处理过程 -> 编码结果 -> 发送结果Netty是典型的Reactor模型结构。 传统多线程模型: 一个人来就餐,一个服务员去服务,然后客人会看菜单,点菜。 服务员将菜单给后厨。 二个人来就餐,二个服务员去服务…… 五个人来就餐,五个服务员去服务…… (也就是转载 2017-07-18 23:49:38 · 4043 阅读 · 0 评论 -
Netty中的ChannelOption
Netty中的ChannelOption常用参数详解转载:http://www.cnblogs.com/googlemeoften/p/6082785.htmlChannelOption的各种属性在套接字选项中都有对应。 下面简单的总结一下ChannelOption的含义已及使用的场景。1、ChannelOption.SO_BACKLOG ChannelOption.SO_BACKLOG对应的转载 2017-07-03 14:54:21 · 12719 阅读 · 0 评论 -
很不错的 Netty 博客专栏(转载)
转载:http://www.itstack.org/?sort=11入门篇基于Netty5.0入门案例一之NettyServer基于Netty5.0入门案例二之NettyServer接收数据基于Netty5.0入门案例三之NettyServer字符串解码器基于Netty5.0入门案例四之NettyServer收发数据基于Netty5.0入门案例五之Netty转载 2016-12-15 10:24:04 · 877 阅读 · 2 评论 -
Netty 对 http协议 解析原理解析
转载出处:http://blog.csdn.net/xiangzhihong8/article/details/52029446本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能。1 http协议1.1 描述 标示转载 2016-12-09 10:27:54 · 698 阅读 · 0 评论 -
Linux 五种 IO模型 性能分析
转载:http://blog.csdn.net/jay900323/article/details/18141217socket阻塞与非阻塞,同步与异步作者:huangguisu1. 概念理解 在进行网络编程时,我们常常见到同步(Sync) / 异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方转载 2016-11-01 10:08:37 · 363 阅读 · 0 评论 -
【Netty in Action学习笔记】Netty核心组件概念
转载出处:http://ifeve.com/netty-in-action-1/该系列是学习并发编程网上的《Netty in Action》中文版 的学习笔记。Netty的核心组件Netty的主要组成模块:ChannelsCallbacksFuturesEvents 和 handlers这些模块代表了不同类型的概念:资源,逻辑和通知。你的应用转载 2016-11-17 08:22:01 · 1189 阅读 · 0 评论 -
采用线程池和消息队列的“伪异步”I/O模型
参考:《Netty权威指南》由于 一请求一线程 的I/O模型,在高并发时创建大量的线程,严重降低系统性能,并且容易造成线程堆栈溢出等问题。采用线程池和消息队列的“伪异步”模型,是一种改良版的模型。原理:当有新的客户端请求到来时,将socket封装成一个Task(该任务实现了Runnable接口),投递到线程池中进行处理。 而线程池始终维护一个消息队列和N个原创 2016-11-10 20:16:47 · 3280 阅读 · 0 评论 -
Java网络知识点总结
1、select、poll、epoll详解http://blog.csdn.net/hbtj_1216/article/details/70568402原创 2017-07-31 14:34:06 · 1519 阅读 · 0 评论