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

  • 相关阅读:
    jQuery找出所有没有disabled属性的checkbox
    jQuery prop()方法
    Aliyun 中PHP如何升级
    The connection to the server localhost:8080 was refused
    ks8集群扩容新增节点,以及xshell无法访问的问题
    设置小程序模板消息keyword_id_list问题
    git如何新建仓库,并初始化代码
    k8s应用配置详解
    git如何把分支变成master
    nginx首页根据IP跳转
  • 原文地址:https://www.cnblogs.com/passedbylove/p/13791016.html
Copyright © 2011-2022 走看看