aio-enhance v1.0.2 发布,Java AIO 内核增强类库

栏目: 软件资讯 · 发布时间: 4年前

内容简介:aio-enhance(音译:硬汉) 是一款无侵入式的 Java AIO 内核增强类库(注意:这不是一款通信框架),解决原生 AIO 架构设计中存在的缺陷,提供更高效、更稳定的通信能力。 aio-enhance 采用了 NIO 技术实现了一套...

aio-enhance(音译:硬汉) 是一款无侵入式的 Java AIO 内核增强类库注意:这不是一款通信框架),解决原生 AIO 架构设计中存在的缺陷,提供更高效、更稳定的通信能力。

aio-enhance 采用了 NIO 技术实现了一套全新的异步 IO 模型,兼容完整的 Java AIO 接口。用户可自由选择 Java 原生提供的,或者 aio-enhance 增强的 AIO 实现,架构如下图。

aio-enhance v1.0.2 发布,Java AIO 内核增强类库

一、项目背景

2.1 解决平台兼容性问题。

Java 原生 AIO 在 Mac 操作系统下存在兼容性问题,进行性能压测会偶发性的系统崩溃。

2.2 修复官方 AIO 架构缺陷

Java 原生 AIO 在底层架构设计上存在缺陷(参考:Java AIO通信模型)。多核 CPU 环境下处理高并发请求,会引发比较严重的锁竞争现象,以致无法充分发挥机器性能。

普通4核机器竞争压力不大,AIO 的运行表现实测优于NIO。但随着 CPU 核数的增加,AIO 的性能优势逐渐下降。

2.3 优化 AIO 线程模型

Java AIO 相较于 NIO 多了一层异步线程模型,极大降低了开发人员的编程难度。但是通信过程中的 accept、connect、read、write 等事件都是复用同一组线程资源,容易造成读写回调进入死锁状态。 AIO通信框架在设计上需要特别关注这一点,但如果引入 aio-enhance 则无此顾虑。

二、适用场景

如果您符合以下几个条件,aio-enhance 会是一个不错的选择。

  • 任何基于 Java AIO 实现的通信框架,如:smart-socket
  • 对高并发实时性有严苛要求;
  • 多核CPU环境(至少4核以上)

三、更新内容

  1. 优化:单次读写回调事件只触发一次 IO 操作,减少read/write结果为0的频次。
  2. 优化:将异步回调事件的递归计数器由 AtomicInteger 类型调整为 int 类型。
  3. 优化:简化 Selector 的处理逻辑。
  4. 优化:简化 SelectionKey.interestOps 的处理逻辑

四、集成

步骤一:依赖

引入增强包:aio-enhance.jar。可以通过maven方式引入依赖,亦可直接下载 jar 包并导入classpath。

<dependency>
	<groupId>org.smartboot.aio</groupId>
	<artifactId>aio-enhance</artifactId>
	<version>1.0.2</version>
</dependency>

步骤二:启动

可以通过硬编码的方式设置系统属性,如下:

System.setProperty("java.nio.channels.spi.AsynchronousChannelProvider", "org.smartboot.aio.EnhanceAsynchronousChannelProvider");

也可在 java 启动命令行中设置,如下:

java -Djava.nio.channels.spi.AsynchronousChannelProvider=org.smartboot.aio.EnhanceAsynchronousChann

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web表单设计

Web表单设计

[美] Luke Wroblewski / 卢颐、高韵蓓 / 清华大学出版社 / 2010-6 / 49.00元

精心设计的表单,能让用户感到心情舒畅,愉快地注册、付款和进行内容创建和管理,这是促成网上商业成功的秘密武器。本书通过独到、深邃的见解,丰富、真实的实例,道出了表单设计的真谛。新手设计师通过阅读本书,可广泛接触到优秀表单设计的所有构成要素。经验丰富的资深设计师,可深入地了解以前没有注意到的问题及解决方案。 本书专为表单设计或开发人员准备,但同时也适合可用性工程师、网站开发人员、产品经理、视觉设......一起来看看 《Web表单设计》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

SHA 加密
SHA 加密

SHA 加密工具