
netty
运维开发笔记
这个作者很懒,什么都没留下…
展开
-
linux下的IO模型
linux内核将所有外部设备看做文件来操作,对一个文件的读写会调用内核提供的系统命令,返回一个称为文件描述符fd的东西。UNIX下可用的5种I/O模型:(1)阻塞I/O(2)非阻塞I/O(3)I/O复用(select和poll)(4)信号驱动I/O(SIGIO)(5)异步I/O对于一个套接口上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待分组到达时,它被拷贝到内核中的某个缓冲区。第二步就是原创 2016-06-12 22:51:53 · 328 阅读 · 0 评论 -
socket编程中的一个坑
最近在看netty。 书中的第一个例子,同步阻塞IO。 https://m.oschina.net/blog/369136 在向客户端写的时候, 代码用了out.print(currentTime); 这是错误的。虽然构造PrintWriter的时候设置了自动flush。 但是print不会自动flush。要用println。 print() 方法等同于 write() 方法 pri原创 2016-06-13 21:06:23 · 712 阅读 · 0 评论 -
NIO示例
TimeServer:package yunsheng;import java.io.IOException;public class TimeServer { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOExcepti原创 2016-06-29 20:52:05 · 340 阅读 · 0 评论 -
java同步阻塞IO
server端:package yunsheng;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class TimeServer { /** * @param args * @throws IOException */ publ原创 2016-06-16 14:16:30 · 285 阅读 · 0 评论 -
Java伪异步IO
server端:package yunsheng;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class TimeServer { /** * @param args * @throws IOException */ publ原创 2016-06-16 14:49:17 · 413 阅读 · 0 评论 -
Java NIO 基础
和阻塞IO对应, socket ————– socketChannel serverSocket———-serverSocketChannel这两种通道又支持阻塞和非阻塞两种实现模式。 阻塞模式代码简单,但是性能和可靠性不好。非阻塞模式相反。基本概念buffer缓冲器buffer对象是NIO类库新加入的对象。他是非常重要的。 在以前面向流的IO中,输入输出是直接写到S原创 2016-06-16 16:04:00 · 249 阅读 · 0 评论 -
reactor模式
reactor模式为了处理web request请求,有两种web架构:基于线程模型的架构和基于事件驱动的架构。基于线程模型线程模型的好处是扩展性比较好,通过加server机器提供更多的线程。 但是缺点就比较多了, 因为是采用一个连接对应一个处理线程的方式。 这就需要大量的处理线程,占用大量内存,大量线程调度开销。 尤其是大量连接到来时,线程用光,导致请求被丢弃。尤其是遇到keep-aliv原创 2017-06-07 15:13:02 · 365 阅读 · 0 评论 -
NIO基础
buffer使用 Buffer 读写数据一般遵循以下四个步骤:写入数据到 Buffer;调用 flip() 方法;从 Buffer 中读取数据;调用 clear() 方法或者 compact() 方法。当向 Buffer 写入数据时,Buffer 会记录下写了多少数据。一旦要读取数据,需要通过 flip() 方法将 Buffer 从写模式切换到读模式。在读模式下,可以读取之前写入到 Buf原创 2017-06-07 15:15:11 · 276 阅读 · 0 评论