最近遇到项目部署,遇到Nacos中的配置读取不到,导致服务起不来。服务器银河麒麟x86,Nacos版本2.3.2, openJdk8u43 报错如下:
java.lang.UnsatisfiedLinkError: no com_alibaba_nacos_shaded_io_grpc_netty_shaded_netty_transport_native_epoll_x86_64 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1865) ~[na:1.8.0_43]
at java.lang.Runtime.loadLibrary0(Runtime.java:842) ~[na:1.8.0_43]
at java.lang.System.loadLibrary(System.java:1134) ~[na:1.8.0_43]
at com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38) ~[nacos-client-2.0.4.jar!/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_43]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_43]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_43]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_43]
at com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:369) ~[nacos-client-2.0.4.jar!/:na]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_43]
不知道为什么,双机房,同样的机器配置,A机房无法启动,B机房可以正常启动。一直读不到Nacos包内中的这两个库。
死活找不到原因,排查了1天也没有什么思路,因为同样的jdk、nacos、服务,在前半个月不到在另一个客户也同样部署过,并没有遇到过这个问题,后面觉得有可能是jdk的问题,就重新换了一个,装完后这个服务起来了,至此以为后面会顺利进行。
但玄学的来了,其他服务开始读不到某个服务本身的配置了。
对应的dataId都存在,但服务对应yml内容不多,就是一直超时,导致读取就是空,服务还是起不来,下面是将jdk更换后两种方案都尝试的后的最终解决方案
1、bootstrap.yml 增加本服务的data-id后在启动,个别服务可以启动成功。
2、将其他临时把别的机器上正常读取到的本地缓存文件(/root/nacos目录)copy到当前机器。
至此完全结束,只想说一句:“环境问题真的很难解”