当前位置: 首页 > 知识库问答 >
问题:

为什么Netty中引入了本机epoll支持?

邴俊友
2023-03-14

我相信Java的NIO库将在Linux机器上使用epoll。在Linux机器上使用Epoll而不是NIO有哪些优点。

共有2个答案

薛鹏飞
2023-03-14

netty的文档中有一些关于此的信息:

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

Linux (since 4.0.16)
MacOS/BSD (since 4.1.11)

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

夏宪
2023-03-14

Netty的epoll传输使用epoll边缘触发,而java的nio库使用级别触发。除此之外,epoll传输还公开了java的nio(如TCP\u-CORK)中不存在的配置选项,因此REUSEPORT等等。

 类似资料:
  • 在EpolDatagramChannelConfig类中,有4个方法如下所示: 这些是: SETLOOPBACKMODE已禁用 是否由于Netty中的问题而禁用了支持,或者EPoll根本不支持UDP多播? 谢谢

  • 问题内容: 我正在使用Cassandra,并且在启动期间,Netty会显示带有堆栈跟踪的警告: 在类路径中找到Netty的本机epoll传输,但是epoll不可用。而是使用NIO。” 该应用程序可以正常运行,但是有办法解决该警告吗? 这是完整的堆栈跟踪: 问题答案: 如果您在Linux上运行,则可以使用本机Linux驱动程序。例如,如果您使用的是Maven,则添加如下所示的依赖项: 或者,您可以通

  • 我正在尝试用Gradle2.14.1编译一个Spring Boot1.3.6.Release应用程序的基本框架。我需要使用Java6。我不能升级到Java7或8。 为什么我得到一个失败的gradle构建 我已经跟随了关于Java6 IE的Spring引导参考指南中的更新。若要使用Tomcat7而不是8,请执行以下操作。我不使用JTA。

  • 引用Spark数据框架、数据集和SQL手册: Spark中还没有包括一些配置单元优化。由于Spark SQL的内存计算模型,其中一些(如索引)不那么重要。其他版本将在Spark SQL的未来版本中发布。 作为Spark的新手,我对此有点困惑,原因有两个: > 即使假设数据适合内存,对非常大的数据集进行完整扫描也可能需要很长时间。我读了这篇反对在内存数据库中建立索引的文章,但我并不信服。这里的示例讨

  • 我正在使用Cassandra,在启动过程中,Netty打印了一个带有堆栈跟踪的警告: 在类路径中找到Netty的本机epoll传输,但epoll不可用。改用NIO。" 应用程序工作正常,但有办法修复警告吗? 以下是完整的堆栈跟踪:

  • 让这种方法本土化背后的逻辑是什么? 与仅使用哈希图制作内嵌字符串池相比,有什么优势? 它看起来有点奇怪,但在非本机代码中似乎很容易做到: 那么为什么是本机代码呢?