原文链接 译者:gm777
自4.016版本以来, Netty提供了本地的socket传输使Linux系统可以使用JNI(JAVA本地接口)。这个传输接口不仅有着高性能并且产生更少的垃圾,所以你也许会想尝试使用一下。
使用本地传输接口
由于这个本地传输接口是与NIO传输接口兼容的,你只需要查询并替代以下的内容:
- NioEventLoopGroup → EpollEventLoopGroup
- NioEventLoop → EpollEventLoop
- NioServerSocketChannel → EpollServerSocketChannel
- NioSocketChannel → EpollSocketChannel
由于这个本地传输接口不在Netty core 核心代码中,你需要修改你的pom.xml文件拉出netty-transport-native-epoll这部分代码作为依赖:
kr.motd.maven os-maven-plugin 1.5.0.Final
...
io.netty netty-transport-native-epoll ${project.version} ${os.detected.name}-${os.detected.arch} ...
注意以上, 你需要指定正确的classifier配置作为依赖。在pom.xml文件extensions 扩展部分os-maven-plugin的os..detected.name和os.detected.arch 配置属性会自动配置。需要更多信息,涉及the homepage of the os-maven-plugin.
想在一个 sbt项目中使用本地传输接口,请在加上线在libraryDependencies:
配置
“io.netty” % “netty-transport-native-epoll” % “${project.version}” classifier “linux-x86_64”
构建本地传输接口包
如果你已经有了本地传输接口的jar包,那你将不用自己去构建本地接口包了,因为jar包中已经包含了已经所需要的包并且会自动加载上。
去构建本地传输接口包,你需要使用64-bit核心的2.6及其以上版本的linux操作系统。并请安装所需要的工具和库:
# RHEL/CentOS/Fedora:
sudo yum install autoconf automake libtool make tar / glibc-devel libaio-devel / libgcc.i686 glibc-devel.i686
# Debian/Ubuntu:
sudo apt-get install autoconf automake libtool make tar / gcc-multilib libaio-dev
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/113528.html