Aeron(GitHub:https://github.com/real-logic/aeron) 是一个可靠高效的 UDP 单播 UDP 多播和 IPC 消息传递工具。Aeron 的设计旨在达到 高吞吐量 低开销 和 低延迟。底层通讯包协议使用SBE(GitHub:https://github.com/real-logic/simple-binary-encoding),号称比谷歌的Protobuffer快20倍。
Aeron适合在通讯包相对小(64k以内零拷贝),吞吐、延迟要求极高的场景使用。
调研前,先建一个maven项目,我用的Eclipse工程,Aeron官方开发使用的IDEA,我不贡献代码,也就无所谓IDE工具了。
理论上只需要引用aeron-all包即可,我还需要看官方Samples,所以多引用一个HdrHistogram包,编译环境官方要求JDK8(65版本以上),所以配置pom如下(build标签是我加的,便于开发,请根据个人配置喜好调整):
<!-- https://mvnrepository.com/artifact/io.aeron/aeron-all -->
<dependency>
<groupId>io.aeron</groupId>
<artifactId>aeron-all</artifactId>
<version>1.24.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hdrhistogram/HdrHistogram -->
<dependency>
<groupId>org.hdrhistogram</groupId>
<artifactId>HdrHistogram</artifactId>
<version>2.1.12</version>
</dependency>
<build>
<!-- 打包资源文件 -->
<resources>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 编译时忽略测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
好,初步工作准备就绪。