zoukankan      html  css  js  c++  java
  • netty_transport_native_epoll cannot be loaded from java.library.path, now trying export to -Dio.netty.native.workdir:

    背景

    按照尚硅谷周阳老师的springcloud系列课程敲代码,然后部署到linux,日志级别改成debug看到以下错误

    .NativeLibraryLoader - netty_transport_native_epoll cannot be loaded from java.library.path, now trying export to -Dio.netty.native.workdir: /tmp
    java.lang.UnsatisfiedLinkError: no netty_transport_native_epoll in java.library.path
            at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
            at java.lang.Runtime.loadLibrary0(Runtime.java:871)
            at java.lang.System.loadLibrary(System.java:1124)
            at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
            at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:351)
            at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:136)
            at io.netty.channel.epoll.Native.loadNativeLibrary(Native.java:253)
            at io.netty.channel.epoll.Native.<clinit>(Native.java:69)
            at io.netty.channel.epoll.Epoll.<clinit>(Epoll.java:39)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:264)
            at reactor.netty.resources.DefaultLoopEpoll.<clinit>(DefaultLoopEpoll.java:96)
            at reactor.netty.resources.DefaultLoopNativeDetector.<clinit>(DefaultLoopNativeDetector.java:35)
            at reactor.netty.resources.LoopResources.hasNativeSupport(LoopResources.java:332)
            at reactor.netty.resources.LoopResources.preferNative(LoopResources.java:273)
            at reactor.netty.resources.DefaultLoopResources.onServerSelect(DefaultLoopResources.java:149)
            at reactor.netty.tcp.TcpResources.onServerSelect(TcpResources.java:256)
            at reactor.netty.tcp.TcpServerRunOn.configure(TcpServerRunOn.java:53)
            at reactor.netty.tcp.TcpServerRunOn.configure(TcpServerRunOn.java:43)
            at reactor.netty.tcp.TcpServerBootstrap.configure(TcpServerBootstrap.java:39)
            at reactor.netty.tcp.TcpServerBootstrap.configure(TcpServerBootstrap.java:39)
            at reactor.netty.tcp.TcpServerBootstrap.configure(TcpServerBootstrap.java:39)
            at reactor.netty.tcp.TcpServerBootstrap.configure(TcpServerBootstrap.java:39)
            at reactor.netty.tcp.TcpServerChannelGroup.configure(TcpServerChannelGroup.java:44)
            at reactor.netty.tcp.TcpServerBootstrap.configure(TcpServerBootstrap.java:39)
            at reactor.netty.tcp.TcpServerBootstrap.configure(TcpServerBootstrap.java:39)
            at reactor.netty.tcp.TcpServer.bind(TcpServer.java:165)

    作为强迫症患者,看到这个想动手改改,于是找到以下文字

    Since 1.2.2 netty engine is trying to initialize native transport is available with fallback to NIO implementation.

    This is not an error. The problem is that you have wrong logger configuration so you see netty debug log.

    解决方法

    笔者使用的Springcloud版本比较高,2.3.4.RELASE,mvn package打包后看到netty版本是4.1.52.Final,在项目添加依赖

    netty目前支持macOS/BSD、Linux内核的调优,大家需要根据自己部署的服务器CPU架构类型选择相应的包。

    执行以下命令

    uname -m

     笔者部署在华为云鲲鹏云arm架构,所有要使用linux-aarch64,如果是普通X86架构cpu使用linux-x86_64(默认打包用linux-x86-64)

    <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-transport-native-epoll</artifactId>
         <version>4.1.52.Final</version>
         <classifier>linux-aarch64</classifier>
    </dependency>

    打开jar包确认,如果有以下包说明打包成功

    查看日志

    grep -in native

     以上说明加载成功

     参考

    https://github.com/ktorio/ktor/issues/1203

    https://netty.io/wiki/native-transports.html

  • 相关阅读:
    谷歌SEO和百度SEO的区别
    如何在本地搭建网站(图文教程)
    企业级Web服务器安全主动防御措施
    如何在Ubuntu下搭建tftp服务器
    十条服务器端优化Web性能的技巧
    APP开发者如何从应用程序中赚钱?
    5个让你的404页面变的更加实用的技巧
    修改linux的MAC地址
    剪切文件或目录命令
    shell内置命令和外部命令的区别
  • 原文地址:https://www.cnblogs.com/passedbylove/p/13791016.html
Copyright © 2011-2022 走看看