
netty
hueason
北piao
展开
-
Netty入门--BIO
网络编程的基本模型是Clieng/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接建立成功,双方就可以通过网络套接字(Socket)进行通信。采用BIO通信模型的服务器端,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端连接成功请求之后为原创 2017-05-02 14:56:59 · 328 阅读 · 0 评论 -
Netty入门--伪异步I/O
同步阻塞I/O也就是一个客户端请求,服务端需要开启一个线程处理,无法满足高并发需求。后来前辈对这种线程模型进行了优化--服务端通过一个线程池来处理多个客户端的请求接入,形成客户端个数M:线程池最大线程数N的比例关系,其中M可以远远大于N。通过线程池客户灵活地调配线程资源,设置线程的最大值,防止由于海量并发接入导致线程耗尽。采用线程池和任务队列可以实现一种伪异步的I/O通信模型下面通过一个例原创 2017-05-02 15:19:22 · 349 阅读 · 0 评论 -
Netty入门--NIO
JavaNIO库是在JDK1.4中引入的。NIO弥补了原来同步阻塞I/O的不足。下面是NIO的三个主要概念1.缓冲区BufferBuffer是一个对象,它包含一些要写入或者要读取的数据在NIO库中,所有数据都是用缓冲区处理的。在读取数据时,他是直接读到缓冲区中;在写入数据时,写入到缓冲区中。任何时候访问NIO中的数据,都是通过缓冲区进行操作。缓冲区实质上是一个数组。通常是一原创 2017-05-02 15:45:29 · 419 阅读 · 0 评论 -
Netty入门--AIO
AIO也就是NIO2.0,是Java1.7提供的新异步非阻塞I/ONIO2.0的异步套接字通道是真正的异步非阻塞I/O,它不需要通过多路复用器(Selector)对注册的通道进行轮询操作即可实现异步读写。下面是demopackage com.hueason.netty.n1.aio;/** * Created by Administrator on 2017/4/20. */原创 2017-05-02 16:24:17 · 1155 阅读 · 0 评论 -
Java几种I/O模型对比
同步阻塞I/O(BIO)伪异步I/O非阻塞I/O(NIO)异步I/O(AIO)客户端个数:I/O线程1:1M:N(其中M可以大于N)M:1(1个I/O线程处理多个客户端连接)M:0(不需要启动额外的I/O线程,被动回调)I/O类型(阻塞)阻塞I/O阻塞I/O非阻塞I/O非阻塞I/OI/O类型(同步)同步I/O同原创 2017-05-02 14:50:09 · 406 阅读 · 0 评论 -
Netty入门应用
使用JDK的NIO类库开发程序步骤十分繁琐,而且容易出错。下面使用netty进行入门开发本例使用netty 4.0的jar包(netty 5.0由于各种原因被原作者放弃)netty jar包下载地址http://download.youkuaiyun.com/detail/hueason/9832925package com.hueason.netty.n2.simpledemo;impo原创 2017-05-04 09:31:39 · 283 阅读 · 0 评论 -
hornetq只进不出引发的问题
今天上班例行检查的时候发现一个连接hornetq的应用处于"假死"状态,不干活重启后,问题依旧。日志也没有发现什么。打开hornetq的日志后发现,有几天connect_timeout报警。重启hornetq后问题依旧。在排除了账号、网络等问题后,还是找不到原因折腾一上午。将出问题的应用挪到测试服务器上测试后,确定应用是正常的问题定在了hornetq身上。后来想到有几个程序原创 2017-06-26 16:10:31 · 725 阅读 · 0 评论