跳过导航

本机传输

您知道此页面是根据 Github Wiki 页面 自动生成的。您可以在 此处 自行改进!

Netty 提供以下特定于平台的 JNI 传输

  • Linux(自 4.0.16 起)
  • MacOS/BSD(自 4.1.11 起)

这些 JNI 传输添加了特定于特定平台的功能,产生更少的垃圾,并且与基于 NIO 的传输相比,通常会提高性能。

使用本机传输

请注意,您必须为依赖项指定正确的分类器,以确保包含相应的本机库。

使用 Linux 本机传输

由于本机传输与 NIO 传输兼容,因此您只需执行以下搜索和替换

  • NioEventLoopGroupEpollEventLoopGroup
  • NioEventLoopEpollEventLoop
  • NioServerSocketChannelEpollServerSocketChannel
  • NioSocketChannelEpollSocketChannel

由于本机传输不是 Netty 内核的一部分,因此您需要在 Maven pom.xml 中将 netty-transport-native-epoll 作为依赖项提取,或等效于您的构建系统

  <dependencies>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-transport-native-epoll</artifactId>
      <version>${project.version}</version>
      <classifier>linux-x86_64</classifier>
    </dependency>
    ...
  </dependencies>

在上面,分类器是 linux-x86_64,这意味着依赖项中包含的本机二进制文件是为在 64 位 x86 CPU 上运行的 Linux 编译的。其他 CPU 架构和一些特定的 Linux 发行版将需要不同的分类器。

注意:所有官方 Linux 构建都链接到 GLIBC。这意味着使用 Musl 作为其 libc 实现的操作系统不受 Netty 本机传输的官方构建支持。如果您希望在不受支持的 CPU 架构或 libc 实现上使用 Netty 本机传输,则需要进行自己的构建。请参阅以下内容以了解如何执行此操作。

要在 sbt 项目中使用本机传输,请将以下行添加到您的 libraryDependencies

"io.netty" % "netty-transport-native-epoll" % "${project.version}" classifier "linux-x86_64"

使用 MacOS/BSD 本机传输

由于本机传输与 NIO 传输兼容,因此您只需执行以下搜索和替换

  • NioEventLoopGroupKQueueEventLoopGroup
  • NioEventLoopKQueueEventLoop
  • NioServerSocketChannelKQueueServerSocketChannel
  • NioSocketChannelKQueueSocketChannel

由于本机传输不是 Netty 内核的一部分,因此您需要在 Maven pom.xml 中将 netty-transport-native-kqueue 作为依赖项提取

  <dependencies>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-transport-native-kqueue</artifactId>
      <version>${project.version}</version>
      <classifier>osx-x86_64</classifier>
    </dependency>
    ...
  </dependencies>

要在 sbt 项目中使用本机传输,请将以下行添加到您的 libraryDependencies

"io.netty" % "netty-transport-native-kqueue" % "${project.version}" classifier "osx-x86_64"

构建本机传输

如果您已经有了本机传输的 JAR 文件,则不需要自己构建本机传输,因为 JAR 文件已经包含必要的共享库文件(例如 .so.dll.dynlib),并且它们将自动加载。

构建 Linux 本机传输

要构建本机传输,您需要使用具有 64 位内核 2.6 或更高版本的 Linux。请同时安装所需的工具和库

# RHEL/CentOS/Fedora:
sudo yum install autoconf automake libtool make tar \
                 glibc-devel \
                 libgcc.i686 glibc-devel.i686
# Debian/Ubuntu:
sudo apt-get install autoconf automake libtool make tar \
                     gcc

构建 MacOS/BSD 本机传输

要构建本机传输,您需要使用 MacOS 10.12 或更高版本。请同时安装所需的工具和库

brew install autoconf automake libtool
上次检索于 2024 年 7 月 19 日