Java NIO
思维的深度
这个作者很懒,什么都没留下…
展开
-
Kafka Client源码中的NIO使用
本源码使用的Kafka Client是0.10.0.1NetworkClient是一个通用的网络客户端实现,Kafka生产者和消费者都使用NetworkClient组件和服务端Broker之间进行通讯。public class NetworkClient implements KafkaClient { private static final Logger log = LoggerFactory.getLogger(NetworkClient.class); /* the s原创 2020-06-13 16:58:54 · 673 阅读 · 0 评论 -
Reactor模型示例
Reactor模型相关内容可参考:https://blog.csdn.net/skh2015java/article/details/106721630Reactor模型示例mainSelector 负责处理ACCEPT I/O事件,处理ACCEPT的业务逻辑Handler交给executorService线程池处理subSelector负责处理READ I/O事件,处理READ和逻辑的Handler交给executorService线程处理import java.io.IOExcepti原创 2020-06-12 18:40:56 · 723 阅读 · 0 评论 -
Scalable IO in Java
原文地址:http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf《Scalable IO in Java》是java.util.concurrent包的作者,大师Doug Lea关于分析与构建可伸缩的高性能IO服务的一篇经典文章,在文章中Doug Lea通过各个角度,循序渐进的梳理了服务开发中的相关问题,以及在解决问题的过程中服务模型的演变与进化,文章中基于Reactor反应器模式的几种服务模型架构,也被Netty、Mina等大多数高性能IO服务框架所采用,因..原创 2020-06-12 18:37:28 · 1219 阅读 · 2 评论 -
Java NIO之Selector详细理解
介绍 Selector一般称为选择器。它是Java NIO核心组件之一,选择器管理着一个被注册的通道集合的信息和它们的就绪状态。通道是和选择器一起被注册的,并且使用选择器来更新通道的就绪状态。 可选择通道(SelectableChannel)抽象类SelectableChannel提供了实现通道的可选择性所需要的公共方法。继承该SelectableChannel的通道(如:socket通道)都是可选择的,因此可以配置成非阻塞模式。//可以注册的Cha...原创 2020-06-11 19:02:46 · 1268 阅读 · 0 评论 -
Java NIO之Channel详细理解
介绍理解:通道是一个连接I/O服务的管道并提供与该服务交互的方法。Channel类似于传统的”流”,但是Channel不能直接访问数据,需要和缓冲区Buffer进行交互。通道和传统流的区别:1. 通道可以是双向的,既可以读取数据,又可以写数据到通道。但流的读写通常是单项的 2. 通道可以异步的读写 3. 通道不能直接访问数据,需要和Buffer进行交互通道可以简单的分为两大类:文件通道和Socket通道文件通道 文件通道的主要实现是Fi...原创 2020-06-11 18:50:28 · 2831 阅读 · 0 评论 -
Java NIO之Buffer详细理解
Buffer简介Buffer:是一个指定特定数据类型的容器,主要用于和Channel进行数据交互。在多线程操作下 Buffer 是不安全的。在Java NIO中使用的核心缓冲区如下(覆盖了通过I/O发送的基本数据类型:byte, char、short, int, long, float, double, long):ByteBufferCharBufferShortBufferIntBufferFloatBufferDoubleBufferLongBuffer..原创 2020-06-11 18:33:56 · 1035 阅读 · 2 评论