Netty 4.1.50.Final 提供了对 ARM aarch64 结构的 Epoll API 支持。
我们在使用 Netty 的过程中,可能会使用 netty-transport-native-epoll
提高部署在 Linux 服务器的性能。
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<version>4.1.49.Final</version>
<classifier>linux-x86_64</classifier>
</dependency>
在代码中使用:
bossGroup = Epoll.isAvailable() ? new EpollEventLoopGroup(1) : new NioEventLoopGroup(1);
workerGroup = Epoll.isAvailable() ? new EpollEventLoopGroup(workerThreads) : new NioEventLoopGroup(workerThreads);
new ServerBootstrap()
.group(bossGroup, workerGroup)
.channel(Epoll.isAvailable() ? EpollServerSocketChannel.class : NioServerSocketChannel.class)
// 省略部分代码...
在 Netty 4.1.50.Final 之前的版本,netty-transport-native-epoll
只提供了 linux-x86-64
的 classifier。如果环境是 aarch64 的 Linux 机器,Epoll.isAvailable()
将返回 false
,无法使用 EpollServerSocketChannel
等 Netty 提供的 Epoll API。
在 Netty 4.1.50.Final 之后,我们可以指定 classifier 为 linux-aarch_64
,即可在 aarch64 的环境使用 Netty 的 Epoll API。
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<version>4.1.50.Final</version>
<classifier>linux-aarch_64</classifier>
</dependency>
https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.50.Final/