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

  • 相关阅读:
    算法笔记--中国剩余定理
    算法笔记--辛普森积分公式
    算法笔记--数学之不定方程解的个数
    算法笔记--卢卡斯定理
    洛谷 P3808 【模板】AC自动机(简单版)洛谷 P3796 【模板】AC自动机(加强版)
    hihocoder #1419 : 后缀数组四·重复旋律4
    codevs 3044 矩形面积求并 || hdu 1542
    Stamps ans Envelope Sive UVA
    洛谷 P2061 [USACO07OPEN]城市的地平线City Horizon
    bzoj 3277: 串
  • 原文地址:https://www.cnblogs.com/passedbylove/p/13791016.html
Copyright © 2011-2022 走看看