文章目录
前言
本文对nacos 源码启动 报 Unable to start embedded Tomcat ,报错原因及解决办法进行介绍;如果想直接看结果可以直接到 3.2 jmenv.tbsite.net 原因分析:
。本文环境 nacos :2.4.0; 3.2 jmenv.tbsite.net 原因分析:
一、Nacos 介绍:
Nacos 是一个开源的服务发现、配置管理和服务管理平台,旨在帮助开发人员构建和维护微服务架构的应用。Nacos 的功能包括:服务发现和注册、配置管理、动态 DNS 服务以及服务健康监测。以下是 Nacos 的一些主要特点和功能:
-
服务发现与注册:Nacos 提供了服务发现和注册功能,使得微服务应用能够灵活地注册和发现其他服务实例。开发人员可以方便地实现服务之间的通信和调用,而无需手动管理服务的注册和发现。
-
配置管理:Nacos 提供了统一的配置管理功能,可以帮助开发人员管理应用程序的各种配置信息,如数据库连接信息、应用参数等。通过 Nacos,可以实现配置的动态更新和推送,降低配置变更的成本和风险。
-
动态 DNS 服务:Nacos 提供了动态 DNS 服务功能,可以自动为服务实例分配动态 IP 地址,而无需手动管理域名和 IP 的映射关系。这有助于实现服务的自动化部署和可伸缩性。
-
服务健康监测:Nacos 支持对服务实例的健康检查和监控,能够及时发现和处理不健康的服务实例,提高服务的可靠性和稳定性。通过服务健康监测,可以预防因服务故障导致的系统宕机。
-
多环境管理:Nacos 支持多环境管理功能,可以帮助开发人员在不同环境中管理配置信息和服务注册信息,如开发环境、测试环境和生产环境等。这有助于降低环境配置的复杂性和管理成本。
总的来说,Nacos 提供了丰富的功能和工具,帮助开发人员构建和管理微服务架构的应用。它具有高可用性、可扩展性和易用性的特点,适用于大多数云原生应用场景。
二、服务端启动:
2.1 nacos git 下载:
地址 :https://github.com/alibaba/nacos
2.2 nacos 启动:
报错提示:
完整错误:
D:\Java\jdk\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:59437,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2022.1\captureAgent\debugger-agent.jar=file:/C:/Users/Administrator/AppData/Local/Temp/capture.props -Dfile.encoding=UTF-8 -classpath "D:\java\jdk\jre\lib\charsets.jar;D:\java\jdk\jre\lib\deploy.jar;D:\java\jdk\jre\lib\ext\access-bridge-64.jar;D:\java\jdk\jre\lib\ext\cldrdata.jar;D:\java\jdk\jre\lib\ext\dnsns.jar;D:\java\jdk\jre\lib\ext\jaccess.jar;D:\java\jdk\jre\lib\ext\jfxrt.jar;D:\java\jdk\jre\lib\ext\localedata.jar;D:\java\jdk\jre\lib\ext\nashorn.jar;D:\java\jdk\jre\lib\ext\sunec.jar;D:\java\jdk\jre\lib\ext\sunjce_provider.jar;D:\java\jdk\jre\lib\ext\sunmscapi.jar;D:\java\jdk\jre\lib\ext\sunpkcs11.jar;D:\java\jdk\jre\lib\ext\zipfs.jar;D:\java\jdk\jre\lib\javaws.jar;D:\java\jdk\jre\lib\jce.jar;D:\java\jdk\jre\lib\jfr.jar;D:\java\jdk\jre\lib\jfxswt.jar;D:\java\jdk\jre\lib\jsse.jar;D:\java\jdk\jre\lib\management-agent.jar;D:\java\jdk\jre\lib\plugin.jar;D:\java\jdk\jre\lib\resources.jar;D:\java\jdk\jre\lib\rt.jar;F:\csdn\project\nacos\console\target\classes;F:\csdn\project\nacos\config\target\classes;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-starter-web\2.7.18\spring-boot-starter-web-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-starter-json\2.7.18\spring-boot-starter-json-2.7.18.jar;F:\csdn\maven\maven-warehouse\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.5\jackson-datatype-jdk8-2.13.5.jar;F:\csdn\maven\maven-warehouse\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.5\jackson-datatype-jsr310-2.13.5.jar;F:\csdn\maven\maven-warehouse\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.5\jackson-module-parameter-names-2.13.5.jar;F:\csdn\maven\maven-warehouse\org\springframework\spring-web\5.3.31\spring-web-5.3.31.jar;F:\csdn\maven\maven-warehouse\org\springframework\spring-webmvc\5.3.31\spring-webmvc-5.3.31.jar;F:\csdn\project\nacos\api\target\classes;F:\csdn\maven\maven-warehouse\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;F:\csdn\project\nacos\core\target\classes;F:\csdn\project\nacos\common\target\classes;F:\csdn\project\nacos\consistency\target\classes;F:\csdn\maven\maven-warehouse\com\caucho\hessian\4.0.63\hessian-4.0.63.jar;F:\csdn\project\nacos\auth\target\classes;F:\csdn\project\nacos\plugin\trace\target\classes;F:\csdn\maven\maven-warehouse\org\springframework\spring-test\5.3.31\spring-test-5.3.31.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-test\2.7.18\spring-boot-test-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\apache\tomcat\embed\tomcat-embed-core\9.0.83\tomcat-embed-core-9.0.83.jar;F:\csdn\maven\maven-warehouse\org\apache\tomcat\tomcat-annotations-api\9.0.83\tomcat-annotations-api-9.0.83.jar;F:\csdn\maven\maven-warehouse\com\alipay\sofa\jraft-core\1.3.14\jraft-core-1.3.14.jar;F:\csdn\maven\maven-warehouse\org\ow2\asm\asm\6.0\asm-6.0.jar;F:\csdn\maven\maven-warehouse\org\rocksdb\rocksdbjni\8.8.1\rocksdbjni-8.8.1.jar;F:\csdn\maven\maven-warehouse\net\java\dev\jna\jna\5.5.0\jna-5.5.0.jar;F:\csdn\maven\maven-warehouse\org\jctools\jctools-core\2.1.1\jctools-core-2.1.1.jar;F:\csdn\maven\maven-warehouse\com\lmax\disruptor\3.3.7\disruptor-3.3.7.jar;F:\csdn\maven\maven-warehouse\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;F:\csdn\maven\maven-warehouse\com\alipay\sofa\hessian\3.3.6\hessian-3.3.6.jar;F:\csdn\maven\maven-warehouse\io\dropwizard\metrics\metrics-core\4.2.22\metrics-core-4.2.22.jar;F:\csdn\maven\maven-warehouse\com\alipay\sofa\rpc-grpc-impl\1.3.14\rpc-grpc-impl-1.3.14.jar;F:\csdn\project\nacos\persistence\target\classes;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-starter-jdbc\2.7.18\spring-boot-starter-jdbc-2.7.18.jar;F:\csdn\maven\maven-warehouse\com\zaxxer\HikariCP\3.4.2\HikariCP-3.4.2.jar;F:\csdn\maven\maven-warehouse\org\springframework\spring-jdbc\5.3.31\spring-jdbc-5.3.31.jar;F:\csdn\project\nacos\sys\target\classes;F:\csdn\project\nacos\plugin\environment\target\classes;F:\csdn\maven\maven-warehouse\io\micrometer\micrometer-core\1.9.17\micrometer-core-1.9.17.jar;F:\csdn\maven\maven-warehouse\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;F:\csdn\maven\maven-warehouse\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;F:\csdn\maven\maven-warehouse\org\apache\derby\derby\10.14.2.0\derby-10.14.2.0.jar;F:\csdn\maven\maven-warehouse\commons-io\commons-io\2.7\commons-io-2.7.jar;F:\csdn\maven\maven-warehouse\ch\qos\logback\logback-classic\1.2.13\logback-classic-1.2.13.jar;F:\csdn\project\nacos\plugin\encryption\target\classes;F:\csdn\project\nacos\plugin\config\target\classes;F:\csdn\maven\maven-warehouse\org\apache\httpcomponents\httpasyncclient\4.1.5\httpasyncclient-4.1.5.jar;F:\csdn\maven\maven-warehouse\org\apache\httpcomponents\httpcore-nio\4.4.16\httpcore-nio-4.4.16.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-starter-tomcat\2.7.18\spring-boot-starter-tomcat-2.7.18.jar;F:\csdn\maven\maven-warehouse\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;F:\csdn\maven\maven-warehouse\org\apache\tomcat\embed\tomcat-embed-el\9.0.83\tomcat-embed-el-9.0.83.jar;F:\csdn\maven\maven-warehouse\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.83\tomcat-embed-websocket-9.0.83.jar;F:\csdn\maven\maven-warehouse\com\fasterxml\jackson\core\jackson-core\2.13.5\jackson-core-2.13.5.jar;F:\csdn\maven\maven-warehouse\com\fasterxml\jackson\core\jackson-databind\2.13.5\jackson-databind-2.13.5.jar;F:\csdn\maven\maven-warehouse\com\fasterxml\jackson\core\jackson-annotations\2.13.5\jackson-annotations-2.13.5.jar;F:\csdn\maven\maven-warehouse\io\micrometer\micrometer-registry-prometheus\1.9.17\micrometer-registry-prometheus-1.9.17.jar;F:\csdn\maven\maven-warehouse\io\prometheus\simpleclient_common\0.15.0\simpleclient_common-0.15.0.jar;F:\csdn\maven\maven-warehouse\io\micrometer\micrometer-registry-influx\1.9.17\micrometer-registry-influx-1.9.17.jar;F:\csdn\maven\maven-warehouse\io\micrometer\micrometer-registry-elastic\1.9.17\micrometer-registry-elastic-1.9.17.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-starter-aop\2.7.18\spring-boot-starter-aop-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-starter-actuator\2.7.18\spring-boot-starter-actuator-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-actuator-autoconfigure\2.7.18\spring-boot-actuator-autoconfigure-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-actuator\2.7.18\spring-boot-actuator-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\yaml\snakeyaml\2.0\snakeyaml-2.0.jar;F:\csdn\project\nacos\plugin\control\target\classes;F:\csdn\project\nacos\plugin\datasource\target\classes;F:\csdn\project\nacos\naming\target\classes;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot\2.7.18\spring-boot-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\springframework\spring-core\5.3.31\spring-core-5.3.31.jar;F:\csdn\maven\maven-warehouse\org\springframework\spring-jcl\5.3.31\spring-jcl-5.3.31.jar;F:\csdn\maven\maven-warehouse\org\springframework\spring-context\5.3.31\spring-context-5.3.31.jar;F:\csdn\maven\maven-warehouse\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;F:\csdn\maven\maven-warehouse\org\slf4j\slf4j-api\1.7.26\slf4j-api-1.7.26.jar;F:\csdn\maven\maven-warehouse\ch\qos\logback\logback-core\1.2.13\logback-core-1.2.13.jar;F:\csdn\maven\maven-warehouse\org\javatuples\javatuples\1.2\javatuples-1.2.jar;F:\csdn\maven\maven-warehouse\org\apache\httpcomponents\httpcore\4.4.16\httpcore-4.4.16.jar;F:\csdn\maven\maven-warehouse\org\apache\httpcomponents\httpclient\4.5.14\httpclient-4.5.14.jar;F:\csdn\maven\maven-warehouse\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;F:\csdn\maven\maven-warehouse\mysql\mysql-connector-java\8.0.28\mysql-connector-java-8.0.28.jar;F:\csdn\project\nacos\cmdb\target\classes;F:\csdn\project\nacos\plugin-default-impl\nacos-default-auth-plugin\target\classes;F:\csdn\project\nacos\plugin\auth\target\classes;F:\csdn\maven\maven-warehouse\org\springframework\ldap\spring-ldap-core\2.4.1\spring-ldap-core-2.4.1.jar;F:\csdn\maven\maven-warehouse\org\springframework\spring-tx\5.3.31\spring-tx-5.3.31.jar;F:\csdn\project\nacos\plugin-default-impl\nacos-default-control-plugin\target\classes;F:\csdn\project\nacos\istio\target\classes;F:\csdn\project\nacos\client\target\classes;F:\csdn\maven\maven-warehouse\io\prometheus\simpleclient\0.15.0\simpleclient-0.15.0.jar;F:\csdn\maven\maven-warehouse\io\prometheus\simpleclient_tracer_otel\0.15.0\simpleclient_tracer_otel-0.15.0.jar;F:\csdn\maven\maven-warehouse\io\prometheus\simpleclient_tracer_common\0.15.0\simpleclient_tracer_common-0.15.0.jar;F:\csdn\maven\maven-warehouse\io\prometheus\simpleclient_tracer_otel_agent\0.15.0\simpleclient_tracer_otel_agent-0.15.0.jar;F:\csdn\maven\maven-warehouse\io\grpc\grpc-netty-shaded\1.57.2\grpc-netty-shaded-1.57.2.jar;F:\csdn\maven\maven-warehouse\com\google\guava\guava\32.0.1-android\guava-32.0.1-android.jar;F:\csdn\maven\maven-warehouse\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;F:\csdn\maven\maven-warehouse\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;F:\csdn\maven\maven-warehouse\org\checkerframework\checker-qual\3.33.0\checker-qual-3.33.0.jar;F:\csdn\maven\maven-warehouse\com\google\j2objc\j2objc-annotations\2.8\j2objc-annotations-2.8.jar;F:\csdn\maven\maven-warehouse\com\google\errorprone\error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;F:\csdn\maven\maven-warehouse\io\perfmark\perfmark-api\0.26.0\perfmark-api-0.26.0.jar;F:\csdn\maven\maven-warehouse\io\grpc\grpc-core\1.57.2\grpc-core-1.57.2.jar;F:\csdn\maven\maven-warehouse\com\google\code\gson\gson\2.9.0\gson-2.9.0.jar;F:\csdn\maven\maven-warehouse\com\google\android\annotations\4.1.1.4\annotations-4.1.1.4.jar;F:\csdn\maven\maven-warehouse\org\codehaus\mojo\animal-sniffer-annotations\1.23\animal-sniffer-annotations-1.23.jar;F:\csdn\maven\maven-warehouse\io\grpc\grpc-context\1.57.2\grpc-context-1.57.2.jar;F:\csdn\maven\maven-warehouse\io\grpc\grpc-protobuf\1.57.2\grpc-protobuf-1.57.2.jar;F:\csdn\maven\maven-warehouse\io\grpc\grpc-api\1.57.2\grpc-api-1.57.2.jar;F:\csdn\maven\maven-warehouse\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;F:\csdn\maven\maven-warehouse\io\grpc\grpc-protobuf-lite\1.57.2\grpc-protobuf-lite-1.57.2.jar;F:\csdn\maven\maven-warehouse\io\grpc\grpc-stub\1.57.2\grpc-stub-1.57.2.jar;F:\csdn\maven\maven-warehouse\com\google\api\grpc\proto-google-common-protos\2.17.0\proto-google-common-protos-2.17.0.jar;F:\csdn\maven\maven-warehouse\com\google\protobuf\protobuf-java\3.22.3\protobuf-java-3.22.3.jar;F:\csdn\maven\maven-warehouse\io\envoyproxy\controlplane\api\0.1.27\api-0.1.27.jar;F:\csdn\project\nacos\prometheus\target\classes;F:\csdn\maven\maven-warehouse\org\slf4j\log4j-over-slf4j\1.7.36\log4j-over-slf4j-1.7.36.jar;F:\csdn\maven\maven-warehouse\org\slf4j\jcl-over-slf4j\1.7.36\jcl-over-slf4j-1.7.36.jar;F:\csdn\maven\maven-warehouse\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-starter-security\2.7.18\spring-boot-starter-security-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-starter\2.7.18\spring-boot-starter-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-autoconfigure\2.7.18\spring-boot-autoconfigure-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\springframework\boot\spring-boot-starter-logging\2.7.18\spring-boot-starter-logging-2.7.18.jar;F:\csdn\maven\maven-warehouse\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;F:\csdn\maven\maven-warehouse\org\apache\logging\log4j\log4j-api\2.17.1\log4j-api-2.17.1.jar;F:\csdn\maven\maven-warehouse\org\springframework\spring-aop\5.3.31\spring-aop-5.3.31.jar;F:\csdn\maven\maven-warehouse\org\springframework\spring-beans\5.3.31\spring-beans-5.3.31.jar;F:\csdn\maven\maven-warehouse\org\springframework\security\spring-security-config\5.7.11\spring-security-config-5.7.11.jar;F:\csdn\maven\maven-warehouse\org\springframework\security\spring-security-core\5.7.11\spring-security-core-5.7.11.jar;F:\csdn\maven\maven-warehouse\org\springframework\security\spring-security-crypto\5.7.11\spring-security-crypto-5.7.11.jar;F:\csdn\maven\maven-warehouse\org\springframework\security\spring-security-web\5.7.11\spring-security-web-5.7.11.jar;F:\csdn\maven\maven-warehouse\org\springframework\spring-expression\5.3.31\spring-expression-5.3.31.jar;E:\programer\idea2022-01\IntelliJ IDEA 2022.1\lib\idea_rt.jar" com.alibaba.nacos.Nacos
Connected to the target VM, address: '127.0.0.1:59437', transport: 'socket'
,--.
,--.'|
,--,: : | Nacos
,`--.'`| ' : ,---. Running in cluster mode, All function modules
| : : | | ' ,'\ .--.--. Port: 8848
: | \ | : ,--.--. ,---. / / | / / ' Pid: 27396
| : ' '; | / \ / \. ; ,. :| : /`./ Console: http://192.168.75.1:8848/nacos/index.html
' ' ;. ;.--. .-. | / / '' | |: :| : ;_
| | | \ | \__\/: . .. ' / ' | .; : \ \ `. https://nacos.io
' : | ; .' ," .--.; |' ; :__| : | `----. \
| | '`--' / / ,. |' | '.'|\ \ / / /`--' /
' : | ; : .' \ : : `----' '--'. /
; |.' | , .-./\ \ / `--'---'
'---' `--`---' `----'
2024-03-18 14:34:34.108 INFO 27396 --- [ main] c.a.n.c.l.StartingApplicationListener : The server IP list of Nacos is []
2024-03-18 14:34:35.121 INFO 27396 --- [acos-starting.0] c.a.n.c.l.StartingApplicationListener : Nacos is starting...
2024-03-18 14:34:36.128 INFO 27396 --- [acos-starting.0] c.a.n.c.l.StartingApplicationListener : Nacos is starting...
2024-03-18 14:34:37.140 INFO 27396 --- [acos-starting.0] c.a.n.c.l.StartingApplicationListener : Nacos is starting...
2024-03-18 14:34:37.580 INFO 27396 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8848 (http)
2024-03-18 14:34:37.823 INFO 27396 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3610 ms
2024-03-18 14:34:38.152 INFO 27396 --- [acos-starting.0] c.a.n.c.l.StartingApplicationListener : Nacos is starting...
2024-03-18 14:34:39.168 INFO 27396 --- [acos-starting.0] c.a.n.c.l.StartingApplicationListener : Nacos is starting...
2024-03-18 14:34:40.170 INFO 27396 --- [acos-starting.0] c.a.n.c.l.StartingApplicationListener : Nacos is starting...
2024-03-18 14:34:41.180 INFO 27396 --- [acos-starting.0] c.a.n.c.l.StartingApplicationListener : Nacos is starting...
2024-03-18 14:34:42.195 INFO 27396 --- [acos-starting.0] c.a.n.c.l.StartingApplicationListener : Nacos is starting...
2024-03-18 14:34:43.210 INFO 27396 --- [acos-starting.0] c.a.n.c.l.StartingApplicationListener : Nacos is starting...
2024-03-18 14:34:44.149 ERROR 27396 --- [ main] o.s.b.web.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException. Message: Error creating bean with name 'distroFilterRegistration' defined in class path resource [com/alibaba/nacos/naming/web/NamingConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.FilterRegistrationBean]: Factory method 'distroFilterRegistration' threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroFilter': Unsatisfied dependency expressed through field 'distroMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroMapper' defined in file [F:\csdn\project\nacos\naming\target\classes\com\alibaba\nacos\naming\core\DistroMapper.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
2024-03-18 14:34:44.198 WARN 27396 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
2024-03-18 14:34:44.202 INFO 27396 --- [ main] c.a.n.c.l.StartingApplicationListener : Nacos Log files: C:\Users\Administrator\nacos\logs
2024-03-18 14:34:44.202 INFO 27396 --- [ main] c.a.n.c.l.StartingApplicationListener : Nacos Log files: C:\Users\Administrator\nacos\conf
2024-03-18 14:34:44.202 INFO 27396 --- [ main] c.a.n.c.l.StartingApplicationListener : Nacos Log files: C:\Users\Administrator\nacos\data
2024-03-18 14:34:44.205 ERROR 27396 --- [ main] c.a.n.c.l.StartingApplicationListener : Startup errors :
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:165)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:585)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:409)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289)
at com.alibaba.nacos.Nacos.main(Nacos.java:56)
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:142)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:104)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:481)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:211)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:184)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:162)
... 8 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'distroFilterRegistration' defined in class path resource [com/alibaba/nacos/naming/web/NamingConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.FilterRegistrationBean]: Factory method 'distroFilterRegistration' threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroFilter': Unsatisfied dependency expressed through field 'distroMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroMapper' defined in file [F:\csdn\project\nacos\naming\target\classes\com\alibaba\nacos\naming\core\DistroMapper.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:481)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:213)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:204)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addServletContextInitializerBeans(ServletContextInitializerBeans.java:98)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.<init>(ServletContextInitializerBeans.java:86)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:262)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:236)
at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:53)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4904)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:794)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:248)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:489)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:123)
... 13 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.FilterRegistrationBean]: Factory method 'distroFilterRegistration' threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroFilter': Unsatisfied dependency expressed through field 'distroMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroMapper' defined in file [F:\csdn\project\nacos\naming\target\classes\com\alibaba\nacos\naming\core\DistroMapper.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:648)
... 55 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroFilter': Unsatisfied dependency expressed through field 'distroMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroMapper' defined in file [F:\csdn\project\nacos\naming\target\classes\com\alibaba\nacos\naming\core\DistroMapper.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:713)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:693)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:408)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.resolveBeanReference(ConfigurationClassEnhancer.java:362)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:334)
at com.alibaba.nacos.naming.web.NamingConfig$$EnhancerBySpringCGLIB$$a1cefb2c.distroFilter(<generated>)
at com.alibaba.nacos.naming.web.NamingConfig.distroFilterRegistration(NamingConfig.java:48)
at com.alibaba.nacos.naming.web.NamingConfig$$EnhancerBySpringCGLIB$$a1cefb2c.CGLIB$distroFilterRegistration$1(<generated>)
at com.alibaba.nacos.naming.web.NamingConfig$$EnhancerBySpringCGLIB$$a1cefb2c$$FastClassBySpringCGLIB$$23f9dd87.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at com.alibaba.nacos.naming.web.NamingConfig$$EnhancerBySpringCGLIB$$a1cefb2c.distroFilterRegistration(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 56 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroMapper' defined in file [F:\csdn\project\nacos\naming\target\classes\com\alibaba\nacos\naming\core\DistroMapper.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:224)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:710)
... 80 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:310)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:291)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
... 93 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:226)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:306)
... 107 common frames omitted
Caused by: com.alibaba.nacos.api.exception.NacosException: java.net.UnknownHostException: jmenv.tbsite.net
at com.alibaba.nacos.core.cluster.lookup.AddressServerMemberLookup.run(AddressServerMemberLookup.java:152)
at com.alibaba.nacos.core.cluster.lookup.AddressServerMemberLookup.doStart(AddressServerMemberLookup.java:100)
at com.alibaba.nacos.core.cluster.AbstractMemberLookup.start(AbstractMemberLookup.java:55)
at com.alibaba.nacos.core.cluster.ServerMemberManager.initAndStartLookup(ServerMemberManager.java:237)
at com.alibaba.nacos.core.cluster.ServerMemberManager.init(ServerMemberManager.java:178)
at com.alibaba.nacos.core.cluster.ServerMemberManager.<init>(ServerMemberManager.java:158)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:213)
... 109 common frames omitted
Caused by: java.net.UnknownHostException: jmenv.tbsite.net
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966)
at com.alibaba.nacos.common.http.client.request.JdkHttpClientRequest.execute(JdkHttpClientRequest.java:114)
at com.alibaba.nacos.common.http.client.NacosRestTemplate.execute(NacosRestTemplate.java:482)
at com.alibaba.nacos.common.http.client.NacosRestTemplate.get(NacosRestTemplate.java:72)
at com.alibaba.nacos.core.cluster.lookup.AddressServerMemberLookup.syncFromAddressUrl(AddressServerMemberLookup.java:175)
at com.alibaba.nacos.core.cluster.lookup.AddressServerMemberLookup.run(AddressServerMemberLookup.java:143)
... 119 common frames omitted
2024-03-18 14:34:44.206 WARN 27396 --- [ main] c.a.nacos.sys.file.WatchFileCenter : [WatchFileCenter] start close
2024-03-18 14:34:44.206 WARN 27396 --- [ main] c.a.nacos.sys.file.WatchFileCenter : [WatchFileCenter] start to shutdown this watcher which is watch : C:\Users\Administrator\nacos\conf
2024-03-18 14:34:44.208 WARN 27396 --- [ main] c.a.nacos.sys.file.WatchFileCenter : [WatchFileCenter] already closed
2024-03-18 14:34:44.208 WARN 27396 --- [ main] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Start destroying Publisher
2024-03-18 14:34:44.208 WARN 27396 --- [ main] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Destruction of the end
2024-03-18 14:34:44.208 ERROR 27396 --- [ main] c.a.n.c.l.StartingApplicationListener : Nacos failed to start, please see C:\Users\Administrator\nacos\logs\nacos.log for more details.
2024-03-18 14:34:44.225 INFO 27396 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2024-03-18 14:34:44.273 ERROR 27396 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:165)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:585)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:409)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289)
at com.alibaba.nacos.Nacos.main(Nacos.java:56)
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:142)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:104)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:481)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:211)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:184)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:162)
... 8 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'distroFilterRegistration' defined in class path resource [com/alibaba/nacos/naming/web/NamingConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.FilterRegistrationBean]: Factory method 'distroFilterRegistration' threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroFilter': Unsatisfied dependency expressed through field 'distroMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroMapper' defined in file [F:\csdn\project\nacos\naming\target\classes\com\alibaba\nacos\naming\core\DistroMapper.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:481)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:213)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:204)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addServletContextInitializerBeans(ServletContextInitializerBeans.java:98)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.<init>(ServletContextInitializerBeans.java:86)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:262)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:236)
at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:53)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4904)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:794)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:248)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:489)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:123)
... 13 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.FilterRegistrationBean]: Factory method 'distroFilterRegistration' threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroFilter': Unsatisfied dependency expressed through field 'distroMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroMapper' defined in file [F:\csdn\project\nacos\naming\target\classes\com\alibaba\nacos\naming\core\DistroMapper.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:648)
... 55 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroFilter': Unsatisfied dependency expressed through field 'distroMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroMapper' defined in file [F:\csdn\project\nacos\naming\target\classes\com\alibaba\nacos\naming\core\DistroMapper.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:713)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:693)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:408)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.resolveBeanReference(ConfigurationClassEnhancer.java:362)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:334)
at com.alibaba.nacos.naming.web.NamingConfig$$EnhancerBySpringCGLIB$$a1cefb2c.distroFilter(<generated>)
at com.alibaba.nacos.naming.web.NamingConfig.distroFilterRegistration(NamingConfig.java:48)
at com.alibaba.nacos.naming.web.NamingConfig$$EnhancerBySpringCGLIB$$a1cefb2c.CGLIB$distroFilterRegistration$1(<generated>)
at com.alibaba.nacos.naming.web.NamingConfig$$EnhancerBySpringCGLIB$$a1cefb2c$$FastClassBySpringCGLIB$$23f9dd87.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at com.alibaba.nacos.naming.web.NamingConfig$$EnhancerBySpringCGLIB$$a1cefb2c.distroFilterRegistration(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 56 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distroMapper' defined in file [F:\csdn\project\nacos\naming\target\classes\com\alibaba\nacos\naming\core\DistroMapper.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:224)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:710)
... 80 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverMemberManager' defined in file [F:\csdn\project\nacos\core\target\classes\com\alibaba\nacos\core\cluster\ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:310)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:291)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
... 93 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:226)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:306)
... 107 common frames omitted
Caused by: com.alibaba.nacos.api.exception.NacosException: java.net.UnknownHostException: jmenv.tbsite.net
at com.alibaba.nacos.core.cluster.lookup.AddressServerMemberLookup.run(AddressServerMemberLookup.java:152)
at com.alibaba.nacos.core.cluster.lookup.AddressServerMemberLookup.doStart(AddressServerMemberLookup.java:100)
at com.alibaba.nacos.core.cluster.AbstractMemberLookup.start(AbstractMemberLookup.java:55)
at com.alibaba.nacos.core.cluster.ServerMemberManager.initAndStartLookup(ServerMemberManager.java:237)
at com.alibaba.nacos.core.cluster.ServerMemberManager.init(ServerMemberManager.java:178)
at com.alibaba.nacos.core.cluster.ServerMemberManager.<init>(ServerMemberManager.java:158)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:213)
... 109 common frames omitted
Caused by: java.net.UnknownHostException: jmenv.tbsite.net
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966)
at com.alibaba.nacos.common.http.client.request.JdkHttpClientRequest.execute(JdkHttpClientRequest.java:114)
at com.alibaba.nacos.common.http.client.NacosRestTemplate.execute(NacosRestTemplate.java:482)
at com.alibaba.nacos.common.http.client.NacosRestTemplate.get(NacosRestTemplate.java:72)
at com.alibaba.nacos.core.cluster.lookup.AddressServerMemberLookup.syncFromAddressUrl(AddressServerMemberLookup.java:175)
at com.alibaba.nacos.core.cluster.lookup.AddressServerMemberLookup.run(AddressServerMemberLookup.java:143)
... 119 common frames omitted
2024-03-18 14:34:44.276 WARN 27396 --- [ Thread-5] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool
2024-03-18 14:34:44.277 WARN 27396 --- [ Thread-5] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Destruction of the end
Disconnected from the target VM, address: '127.0.0.1:59437', transport: 'socket'
Process finished with exit code 1
三、Unable to start embedded Tomcat 原因分析:
从控制台的报错链路可以看出 ,nacso 创建 ‘distroFilterRegistration’ 的bean 时 -> 创建distroFilter bean -> 创建 distroMapper bean-> 创建 serverMemberManager bean 报出了错误 ErrCode:500, ErrMsg:jmenv.tbsite.net;
3.1 ServerMemberManager bean 对象的创建:
/**
* Cluster node list.
*/
private volatile ConcurrentSkipListMap<String, Member> serverList;
public ServerMemberManager(ServletContext servletContext) throws Exception {
// 集群 节点集合初始化
this.serverList = new ConcurrentSkipListMap<>();
// 设置容器上下文环境
EnvUtil.setContextPath(servletContext.getContextPath());
// 初始化
init();
}
init() 初始化:
protected void init() throws NacosException {
// nacos 集群资源初始化
Loggers.CORE.info("Nacos-related cluster resource initialization");
// 获取server.port 的配置值如果 没有设置 则取 DEFAULT_SERVER_PORT = 8848
this.port = EnvUtil.getProperty(SERVER_PORT_PROPERTY, Integer.class, DEFAULT_SERVER_PORT);
// 本机 ipv4 ip + port
this.localAddress = InetUtils.getSelfIP() + ":" + port;
// parse ip:port to member.
this.self = MemberUtil.singleParse(this.localAddress);
this.self.setExtendVal(MemberMetaDataConstants.VERSION, VersionUtils.version);
// grpc 标识
this.self.setGrpcReportEnabled(true);
// init abilities.
this.self.setAbilities(initMemberAbilities());
// serverList 放入 地址
serverList.put(self.getAddress(), self);
// register NodeChangeEvent publisher to NotifyManager
// 注册实例节点 变更 监听事件
registerClusterEvent();
// Initializes the lookup mode
// 获取集群内 服务的 实例信息
initAndStartLookup();
if (serverList.isEmpty()) {
throw new NacosException(NacosException.SERVER_ERROR, "cannot get serverlist, so exit.");
}
Loggers.CORE.info("The cluster resource is initialized");
}
nitAndStartLookup()
private void initAndStartLookup() throws NacosException {
// private static MemberLookup LOOK_UP 根据是否集群环境进行赋值
this.lookup = LookupFactory.createLookUp(this);
isUseAddressServer = this.lookup.useAddressServer();
// 获取实例信息
this.lookup.start();
}
LookupFactory.createLookUp(this):
/**
* Create the target addressing pattern.
*
* @param memberManager {@link ServerMemberManager}
* @return {@link MemberLookup}
* @throws NacosException NacosException
*/
public static MemberLookup createLookUp(ServerMemberManager memberManager) throws NacosException {
if (!EnvUtil.getStandaloneMode()) {
// 如果是集群 则选择 AddressServerMemberLookup 或者 FileConfigMemberLookup
String lookupType = EnvUtil.getProperty(LOOKUP_MODE_TYPE);
LookupType type = chooseLookup(lookupType);
LOOK_UP = find(type);
currentLookupType = type;
} else {
// 非集群 选择 StandaloneMemberLookup
LOOK_UP = new StandaloneMemberLookup();
}
LOOK_UP.injectMemberManager(memberManager);
Loggers.CLUSTER.info("Current addressing mode selection : {}", LOOK_UP.getClass().getSimpleName());
// 返回
return LOOK_UP;
}
是否是集群判断:
/**
* Standalone mode or not.
*/
public static boolean getStandaloneMode() {
if (Objects.isNull(isStandalone)) {
// 获取系统 jvm 的 nacos.standalone 值 如果是 true 则非集群,false 为集群
isStandalone = Boolean.getBoolean(Constants.STANDALONE_MODE_PROPERTY_NAME);
}
return isStandalone;
}
this.lookup.start();
@Override
public void start() throws NacosException {
if (start.compareAndSet(false, true)) {
// 方法调用
doStart();
}
}
进入到 AddressServerMemberLookup 类中的doStart() :
AddressServerMemberLookup 是 Nacos 服务发现机制中的一个组件,用于实现服务发现和查找服务实例的功能。具体来说,AddressServerMemberLookup 主要用于查找 Nacos 服务中注册的服务实例的地址信息,并提供这些地址信息来实现服务间的通信和调用;
@Override
public void doStart() throws NacosException {
this.maxFailCount = Integer.parseInt(EnvUtil.getProperty(HEALTH_CHECK_FAIL_COUNT_PROPERTY, DEFAULT_HEALTH_CHECK_FAIL_COUNT));
// 服务地址数据 初始化
initAddressSys();
// 获取服务实例
run();
}
run();
private void run() throws NacosException {
// With the address server, you need to perform a synchronous member node pull at startup
// Repeat three times, successfully jump out
boolean success = false;
Throwable ex = null;
int maxRetry = EnvUtil.getProperty(ADDRESS_SERVER_RETRY_PROPERTY, Integer.class, DEFAULT_SERVER_RETRY_TIME);
for (int i = 0; i < maxRetry; i++) {
// 如果获取失败重试 maxRetry 次
try {
// 同步请求获取服务的实例
syncFromAddressUrl();
success = true;
break;
} catch (Throwable e) {
ex = e;
Loggers.CLUSTER.error("[serverlist] exception, error : {}", ExceptionUtil.getAllExceptionMsg(ex));
}
}
if (!success) {
throw new NacosException(NacosException.SERVER_ERROR, ex);
}
GlobalExecutor.scheduleByCommon(new AddressServerSyncTask(), DEFAULT_SYNC_TASK_DELAY_MS);
}
syncFromAddressUrl():
private void syncFromAddressUrl() throws Exception {
// 向 http://jmenv.tbsite.net:8080/nacos/serverlist 发送get 请求获取服务实例
RestResult<String> result = restTemplate
.get(addressServerUrl, Header.EMPTY, Query.EMPTY, genericType.getType());
// 获取成功
if (result.ok()) {
isAddressServerHealth = true;
// 更新服务实例
Reader reader = new StringReader(result.getData());
try {
afterLookup(MemberUtil.readServerConf(EnvUtil.analyzeClusterConf(reader)));
} catch (Throwable e) {
Loggers.CLUSTER.error("[serverlist] exception for analyzeClusterConf, error : {}",
ExceptionUtil.getAllExceptionMsg(e));
}
addressServerFailCount = 0;
} else {
// 获取失败重试次数+1
addressServerFailCount++;
if (addressServerFailCount >= maxFailCount) {
isAddressServerHealth = false;
}
Loggers.CLUSTER.error("[serverlist] failed to get serverlist, error code {}", result.getCode());
}
}
获取失败 报错:通过 throw new NacosException(NacosException.SERVER_ERROR, ex); 抛出异常 jmenv.tbsite.net
3.2 jmenv.tbsite.net 原因分析:
nacos 2.4.0 源码默认是集群模式下启动,nacos 会向 jmenv.tbsite.net 发送请求从而获取到集群内的其它服务中心地址信息,然后向其注册自己的信息;从而后续完成集群内的网络通信,选举等
;
在 Nacos 中,address.server.domain
是一个在配置文件中可以设置的属性,它用来指定 Nacos Server 的域名,默认为 jmenv.tbsite.net
。这个属性的作用是指定 Nacos Server 的域名,用于在集群模式下进行内部通信和节点发现。
具体来说,address.server.domain
的作用包括:
1). 内部通信:在 Nacos 集群中,各个节点之间需要通过域名或 IP 地址来进行内部通信和数据同步。通过设置 address.server.domain
,可以指定 Nacos Server 的域名,使得集群中的节点可以通过这个域名来互相发现和通信。
2). 节点发现:当新节点加入 Nacos 集群时,它需要通过指定的域名来发现集群中的其他节点,进行集群信息同步、选举 Leader、数据复制等操作。设置 address.server.domain
可以帮助节点在集群中发现其他节点,加入集群并与其他节点建立通信。
3). 集群配置:address.server.domain
的设置也会影响到集群的配置和运行方式。通过设置正确的域名,可以确保集群中的各个节点能够互相访问和交互,保证集群的正常运行和高可用性。
总的来说,address.server.domain
这个属性在 Nacos 中用于指定 Nacos Server 的域名,帮助集群节点进行内部通信、节点发现和互相交互。正确配置这个属性可以确保集群的正常运行和稳定性。
3.3 解决办法:
如果确实是集群换将则可以在 本机hosts 文件设置 jmenv.tbsite.net 的ip 映射
如果不是集群启动,则可以在启动端设置 nacos.standalone 为true:
@SpringBootApplication
@ComponentScan(basePackages = "com.alibaba.nacos", excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = {NacosTypeExcludeFilter.class}),
@Filter(type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class}),
@Filter(type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class})})
@ServletComponentScan
@EnableScheduling
public class Nacos {
public static void main(String[] args) {
String property = System.getProperty("nacos.standalone");
if (null == property) {
// 设置单机启动
System.setProperty("nacos.standalone", "true");
}
SpringApplication.run(Nacos.class, args);
}
}
或者在 jvm 设置 "nacos.standalone 为true:
-Dnacos.standalone=true
3.4 单机模式下启动:
获取其它节点的信息流程会走到 StandaloneMemberLookup 的 doStart() 方法:
@Override
public void doStart() {
// 获取本机的 nacos 访问地址
String url = EnvUtil.getLocalAddress();
// 直接修改 ConcurrentSkipListMap<String, Member> serverList
afterLookup(MemberUtil.readServerConf(Collections.singletonList(url)));
}
总结
本文对 ancos 2.4.0 源码启动 jmenv.tbsite.net 错误的原因及觉办法进行介绍。