内容简介:aio-enhance(音译:硬汉) 是一款无侵入式的 Java AIO 内核增强类库(注意:这不是一款通信框架),解决原生 AIO 架构设计中存在的缺陷,提供更高效、更稳定的通信能力。 aio-enhance 采用了 NIO 技术实现了一套...
aio-enhance(音译:硬汉) 是一款无侵入式的 Java AIO 内核增强类库(注意:这不是一款通信框架),解决原生 AIO 架构设计中存在的缺陷,提供更高效、更稳定的通信能力。
aio-enhance 采用了 NIO 技术实现了一套全新的异步 IO 模型,兼容完整的 Java AIO 接口。用户可自由选择 Java 原生提供的,或者 aio-enhance 增强的 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核以上)
三、更新内容
- 升级 JDK 版本要求至 1.8。
- 采用 Lambda 表达式用于注册关注的事件。
- 采用位运算实现线程分配策略。
- 废弃 WorkerRegister,用 JDK 1.8 中的 Consumer 作为替代。
- 简化 selector 事件的处理逻辑,减少布尔运算。
- 将 TcpNoDelay 默认设为:true。
四、集成
步骤一:依赖
引入增强包:aio-enhance.jar。可以通过maven方式引入依赖,亦可直接下载 jar 包并导入classpath。
<dependency> <groupId>org.smartboot.aio</groupId> <artifactId>aio-enhance</artifactId> <version>1.0.3</version> </dependency>
步骤二:启动
可以通过硬编码的方式设置系统属性,如下:
System.setProperty("java.nio.channels.spi.AsynchronousChannelProvider", "org.smartboot.aio.EnhanceAsynchronousChannelProvider");
也可在 java 启动命令行中设置,如下:
java -Djava.nio.channels.spi.AsynchronousChannelProvider=org.smartboot.aio.EnhanceAsynchronousChann
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何增强Linux内核中的访问控制安全
- aio-enhance 首发,Java AIO 内核增强类库
- aio-enhance v1.0.1 发布,Java AIO 内核增强类库
- aio-enhance v1.0.2 发布,Java AIO 内核增强类库
- aio-enhance v1.0.4 发布,Java AIO 内核增强类库
- aio-enhance v1.0.5 发布,Java AIO 内核增强类库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
一只小鸟告诉我的事
[美]比兹·斯通 / 顾雨佳 / 中信出版社 / 2014-11 / 59.00元
比兹•斯通,无疑是自乔布斯后的又一个硅谷奇迹! 70后的他,出身贫苦,一无所有,却又特立独行,充满智慧。从他这本自传中,我们知道他和乔布斯一样,大学都没读完就辍学做了一名图书封面设计师,然后创建了赞架(Xanga)网站,又进了谷歌。在经济上打了翻身仗后,他毅然放弃了安逸的生活,从零开始,和朋友创建了世界最知名的社交平台推特(Twitter)。当推特奇迹般地改变着世界时,他又悄然离去,创建了自......一起来看看 《一只小鸟告诉我的事》 这本书的介绍吧!