我使用openjdk17启动nacos报错 /home/software/java-17-openjdk/bin/java -Djava.ext.dirs=/home/software/java-17-openjdk/jre/lib/ext:/home/software/java-17-openjdk/lib/ext -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/software/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Xloggc:/home/software/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/software/nacos/plugins,/home/software/nacos/plugins/health,/home/software/nacos/plugins/cmdb,/home/software/nacos/plugins/selector -Dnacos.home=/home/software/nacos -jar /home/software/nacos/target/nacos-server.jar --spring.config.additional-location=file:/home/software/nacos/conf/ --logging.config=/home/software/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288 -Djava.ext.dirs=/home/software/java-17-openjdk/jre/lib/ext:/home/software/java-17-openjdk/lib/ext is not supported. Use -classpath instead. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 环境变量配置: export JAVA_HOME=/home/software/java-17-openjdk export PATH=$JAVA_HOME/bin:$PATH
背景 当前有两个服务,分别是user-service和order-service,nacos服务列表中无法发现两个服务 排查 Nacos v2.2.3 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250107/d4cc2405be99ba149a0886258d2f75bf.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250107/be29104ef11bd1de529f3c827da88fa8.png) 依赖已引入,配置文件已配置addr 运行时未出现连接nacos的日志: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250107/63f0dcb758cf64fb48da77dd8505261f.png) 希望大佬们可以帮忙看看是什么问题 问题程序链接 "https://oss-20001.oss-cn-qingdao.aliyuncs.com/cloud-demo.zip" (https://link.segmentfault.com/?enc=6%2FOVlnNQN0g6ArPNFEhSdQ%3D%3D.0g9NmqCJ0842nwi%2FjX60BOuj3t7hZ3d%2FyEq16OSRRIFHZHmT82St3LAbUvLgFiHS%2BI3jjj6mL7MZxTzDDZAVgw%3D%3D)
生产方: @RestController public class ProducerController { @Autowired private RestTemplate restTemplate; @GetMapping(value = "/echo/{string}") public String produce(@PathVariable String string) { return restTemplate.getForObject("http://nacos-consumer/echo/" + string, String.class); } } 生产方properties文件: # Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html spring.application.name=nacos-producer # Nacos认证信息 spring.cloud.nacos.discovery.username=nacos spring.cloud.nacos.discovery.password=nacos # Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 # 注册到 nacos 的指定 namespace,默认为 public spring.cloud.nacos.discovery.namespace=public # spring.cloud.nacos.discovery.service=nacos-producer management.endpoints.web.exposure.include=* 消费方: package com.example.nacosdiscoverycloudprovider.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @RestController public class NacosController { @Autowired private RestTemplate restTemplate; @GetMapping("/echo/{string}") public String echoString(@PathVariable String string) { return "Hello "+string; } } 消费方application.properties: # Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html spring.application.name=nacos-consumer server.port=8081 # Nacos认证信息 spring.cloud.nacos.discovery.username=nacos spring.cloud.nacos.discovery.password=nacos # Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 # 注册到 nacos 的指定 namespace,默认为 public spring.cloud.nacos.discovery.namespace=public #spring.cloud.nacos.discovery.service=nacos-consumer management.endpoints.web.exposure.include=* 注册中心控制台: https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240914/73a6ab8fd9a5c4894833634cb99231cd.png 访问的接口地址:"http://127.0.0.1:8080/echo/peter" (https://link.segmentfault.com/?enc=Xi%2BIIp6vqH%2FjtnD74BSGgg%3D%3D.VAvYWsMRMxYOUJL7BL3cOnnZAwOq6JiFEAcUhNYGGJmZ5msjs2EDVRyu2NH160M%2B) 报错信息: "C:\Program Files\Java\jdk-1.8\bin\java.exe" -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 "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.1\lib\idea_rt.jar=12291:C:\Program Files\JetBrains\IntelliJ IDEA 2024.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk-1.8\jre\lib\charsets.jar;C:\Program Files\Java\jdk-1.8\jre\lib\deploy.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk-1.8\jre\lib\javaws.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jce.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jfr.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jsse.jar;C:\Program Files\Java\jdk-1.8\jre\lib\management-agent.jar;C:\Program Files\Java\jdk-1.8\jre\lib\plugin.jar;C:\Program Files\Java\jdk-1.8\jre\lib\resources.jar;C:\Program Files\Java\jdk-1.8\jre\lib\rt.jar;C:\MyData\JavaData\WorkSpace\idea-projects\nacos-discovery-cloud-producer\target\classes;C:\localRepository\org\springframework\boot\spring-boot-starter\2.7.18\spring-boot-starter-2.7.18.jar;C:\localRepository\org\springframework\boot\spring-boot\2.7.18\spring-boot-2.7.18.jar;C:\localRepository\org\springframework\spring-context\5.3.31\spring-context-5.3.31.jar;C:\localRepository\org\springframework\boot\spring-boot-autoconfigure\2.7.18\spring-boot-autoconfigure-2.7.18.jar;C:\localRepository\org\springframework\boot\spring-boot-starter-logging\2.7.18\spring-boot-starter-logging-2.7.18.jar;C:\localRepository\ch\qos\logback\logback-classic\1.2.12\logback-classic-1.2.12.jar;C:\localRepository\ch\qos\logback\logback-core\1.2.12\logback-core-1.2.12.jar;C:\localRepository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;C:\localRepository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;C:\localRepository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;C:\localRepository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\localRepository\org\springframework\spring-core\5.3.31\spring-core-5.3.31.jar;C:\localRepository\org\springframework\spring-jcl\5.3.31\spring-jcl-5.3.31.jar;C:\localRepository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar;C:\localRepository\org\springframework\boot\spring-boot-starter-web\2.7.18\spring-boot-starter-web-2.7.18.jar;C:\localRepository\org\springframework\boot\spring-boot-starter-json\2.7.18\spring-boot-starter-json-2.7.18.jar;C:\localRepository\com\fasterxml\jackson\core\jackson-databind\2.13.5\jackson-databind-2.13.5.jar;C:\localRepository\com\fasterxml\jackson\core\jackson-annotations\2.13.5\jackson-annotations-2.13.5.jar;C:\localRepository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.5\jackson-datatype-jdk8-2.13.5.jar;C:\localRepository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.5\jackson-datatype-jsr310-2.13.5.jar;C:\localRepository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.5\jackson-module-parameter-names-2.13.5.jar;C:\localRepository\org\springframework\boot\spring-boot-starter-tomcat\2.7.18\spring-boot-starter-tomcat-2.7.18.jar;C:\localRepository\org\apache\tomcat\embed\tomcat-embed-core\9.0.83\tomcat-embed-core-9.0.83.jar;C:\localRepository\org\apache\tomcat\embed\tomcat-embed-el\9.0.83\tomcat-embed-el-9.0.83.jar;C:\localRepository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.83\tomcat-embed-websocket-9.0.83.jar;C:\localRepository\org\springframework\spring-web\5.3.31\spring-web-5.3.31.jar;C:\localRepository\org\springframework\spring-beans\5.3.31\spring-beans-5.3.31.jar;C:\localRepository\org\springframework\spring-webmvc\5.3.31\spring-webmvc-5.3.31.jar;C:\localRepository\org\springframework\spring-aop\5.3.31\spring-aop-5.3.31.jar;C:\localRepository\org\springframework\spring-expression\5.3.31\spring-expression-5.3.31.jar;C:\localRepository\com\alibaba\cloud\spring-cloud-starter-alibaba-nacos-discovery\2021.0.5.0\spring-cloud-starter-alibaba-nacos-discovery-2021.0.5.0.jar;C:\localRepository\com\alibaba\cloud\spring-cloud-alibaba-commons\2021.0.5.0\spring-cloud-alibaba-commons-2021.0.5.0.jar;C:\localRepository\com\alibaba\nacos\nacos-client\2.2.0\nacos-client-2.2.0.jar;C:\localRepository\com\alibaba\nacos\nacos-auth-plugin\2.2.0\nacos-auth-plugin-2.2.0.jar;C:\localRepository\com\alibaba\nacos\nacos-encryption-plugin\2.2.0\nacos-encryption-plugin-2.2.0.jar;C:\localRepository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;C:\localRepository\com\fasterxml\jackson\core\jackson-core\2.13.5\jackson-core-2.13.5.jar;C:\localRepository\org\apache\httpcomponents\httpasyncclient\4.1.5\httpasyncclient-4.1.5.jar;C:\localRepository\org\apache\httpcomponents\httpcore\4.4.16\httpcore-4.4.16.jar;C:\localRepository\org\apache\httpcomponents\httpcore-nio\4.4.16\httpcore-nio-4.4.16.jar;C:\localRepository\org\apache\httpcomponents\httpclient\4.5.14\httpclient-4.5.14.jar;C:\localRepository\io\prometheus\simpleclient\0.15.0\simpleclient-0.15.0.jar;C:\localRepository\io\prometheus\simpleclient_tracer_otel\0.15.0\simpleclient_tracer_otel-0.15.0.jar;C:\localRepository\io\prometheus\simpleclient_tracer_common\0.15.0\simpleclient_tracer_common-0.15.0.jar;C:\localRepository\io\prometheus\simpleclient_tracer_otel_agent\0.15.0\simpleclient_tracer_otel_agent-0.15.0.jar;C:\localRepository\com\alibaba\spring\spring-context-support\1.0.11\spring-context-support-1.0.11.jar;C:\localRepository\org\springframework\cloud\spring-cloud-commons\3.1.5\spring-cloud-commons-3.1.5.jar;C:\localRepository\org\springframework\security\spring-security-crypto\5.7.11\spring-security-crypto-5.7.11.jar;C:\localRepository\org\springframework\cloud\spring-cloud-context\3.1.5\spring-cloud-context-3.1.5.jar;C:\localRepository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar" com.example.nacosdiscoverycloudprovider.NacosDiscoveryCloudProducerApplication 2024-08-17 10:18:49.910 INFO 87244 --- [ main] c.a.n.client.env.SearchableProperties : properties search order:PROPERTIES->JVM->ENV->DEFAULT_SETTING . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.18) 2024-08-17 10:18:50.044 INFO 87244 --- [ main] n.NacosDiscoveryCloudProducerApplication : Starting NacosDiscoveryCloudProducerApplication using Java 1.8.0_421 on Hasee-PC with PID 87244 (C:\MyData\JavaData\WorkSpace\idea-projects\nacos-discovery-cloud-producer\target\classes started by btcho in C:\MyData\JavaData\WorkSpace\idea-projects\nacos-discovery-cloud-producer) 2024-08-17 10:18:50.044 INFO 87244 --- [ main] n.NacosDiscoveryCloudProducerApplication : No active profile set, falling back to 1 default profile: "default" 2024-08-17 10:18:50.567 INFO 87244 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=6fd54010-1d76-3fba-bc3f-71b99c1d8fe3 2024-08-17 10:18:50.813 INFO 87244 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2024-08-17 10:18:50.814 INFO 87244 --- [ main] o.a.catalina.core.AprLifecycleListener : Loaded Apache Tomcat Native library [1.3.0] using APR version [1.7.4]. 2024-08-17 10:18:50.814 INFO 87244 --- [ main] o.a.catalina.core.AprLifecycleListener : APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true]. 2024-08-17 10:18:50.814 INFO 87244 --- [ main] o.a.catalina.core.AprLifecycleListener : APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] 2024-08-17 10:18:50.820 INFO 87244 --- [ main] o.a.catalina.core.AprLifecycleListener : OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024] 2024-08-17 10:18:50.830 INFO 87244 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2024-08-17 10:18:50.830 INFO 87244 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.83] 2024-08-17 10:18:51.003 INFO 87244 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-08-17 10:18:51.003 INFO 87244 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 928 ms 2024-08-17 10:18:52.320 INFO 87244 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2024-08-17 10:18:52.390 INFO 87244 --- [ main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. 2024-08-17 10:18:52.390 INFO 87244 --- [ main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. 2024-08-17 10:18:54.047 INFO 87244 --- [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, DEFAULT_GROUP nacos-producer 192.168.237.1:8080 register finished 2024-08-17 10:18:54.311 INFO 87244 --- [ main] n.NacosDiscoveryCloudProducerApplication : Started NacosDiscoveryCloudProducerApplication in 5.011 seconds (JVM running for 5.857) 2024-08-17 10:20:19.054 INFO 87244 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2024-08-17 10:20:19.054 INFO 87244 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2024-08-17 10:20:19.055 INFO 87244 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms 2024-08-17 10:20:21.801 ERROR 87244 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://nacos-consumer/echo/peter": nacos-consumer; nested exception is java.net.UnknownHostException: nacos-consumer] with root cause java.net.UnknownHostException: nacos-consumer at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:196) ~[na:1.8.0_421] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162) ~[na:1.8.0_421] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) ~[na:1.8.0_421] at java.net.Socket.connect(Socket.java:606) ~[na:1.8.0_421] at java.net.Socket.connect(Socket.java:555) ~[na:1.8.0_421] at sun.net.NetworkClient.doConnect(NetworkClient.java:180) ~[na:1.8.0_421] at sun.net.www.http.HttpClient.openServer(HttpClient.java:499) ~[na:1.8.0_421] at sun.net.www.http.HttpClient.openServer(HttpClient.java:594) ~[na:1.8.0_421] at sun.net.www.http.HttpClient.(HttpClient.java:278) ~[na:1.8.0_421] at sun.net.www.http.HttpClient.New(HttpClient.java:375) ~[na:1.8.0_421] at sun.net.www.http.HttpClient.New(HttpClient.java:393) ~[na:1.8.0_421] at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1240) ~[na:1.8.0_421] at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167) ~[na:1.8.0_421] at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061) ~[na:1.8.0_421] at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:995) ~[na:1.8.0_421] at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:76) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:782) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:717) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:340) ~[spring-web-5.3.31.jar:5.3.31] at com.example.nacosdiscoverycloudprovider.controller.ProducerController.produce(ProducerController.java:19) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_421] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_421] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_421] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_421] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.31.jar:5.3.31] at javax.servlet.http.HttpServlet.service(HttpServlet.java:529) ~[tomcat-embed-core-9.0.83.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.31.jar:5.3.31] at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[tomcat-embed-core-9.0.83.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.31.jar:5.3.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.31.jar:5.3.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.31.jar:5.3.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.83.jar:9.0.83] at java.lang.Thread.run(Thread.java:750) [na:1.8.0_421] 我查了下,restTemplate是支持服务名调用的,问题到底出在哪里呢? 已解决,要添加如下依赖: org.springframework.cloud spring-cloud-loadbalancer
生产方: @RestController public class ProducerController { @Autowired private RestTemplate restTemplate; @GetMapping(value = "/echo/{string}") public String produce(@PathVariable String string) { return restTemplate.getForObject("http://nacos-consumer/echo/" + string, String.class); } } 生产方properties文件: # Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html spring.application.name=nacos-producer # Nacos认证信息 spring.cloud.nacos.discovery.username=nacos spring.cloud.nacos.discovery.password=nacos # Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 # 注册到 nacos 的指定 namespace,默认为 public spring.cloud.nacos.discovery.namespace=public # spring.cloud.nacos.discovery.service=nacos-producer management.endpoints.web.exposure.include=* 消费方: package com.example.nacosdiscoverycloudprovider.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @RestController public class NacosController { @Autowired private RestTemplate restTemplate; @GetMapping("/echo/{string}") public String echoString(@PathVariable String string) { return "Hello "+string; } } 消费方application.properties: # Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html spring.application.name=nacos-consumer server.port=8081 # Nacos认证信息 spring.cloud.nacos.discovery.username=nacos spring.cloud.nacos.discovery.password=nacos # Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 # 注册到 nacos 的指定 namespace,默认为 public spring.cloud.nacos.discovery.namespace=public #spring.cloud.nacos.discovery.service=nacos-consumer management.endpoints.web.exposure.include=* 注册中心控制台: https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240914/73a6ab8fd9a5c4894833634cb99231cd.png 访问的接口地址:"http://127.0.0.1:8080/echo/peter" (https://link.segmentfault.com/?enc=Xi%2BIIp6vqH%2FjtnD74BSGgg%3D%3D.VAvYWsMRMxYOUJL7BL3cOnnZAwOq6JiFEAcUhNYGGJmZ5msjs2EDVRyu2NH160M%2B) 报错信息: "C:\Program Files\Java\jdk-1.8\bin\java.exe" -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 "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.1\lib\idea_rt.jar=12291:C:\Program Files\JetBrains\IntelliJ IDEA 2024.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk-1.8\jre\lib\charsets.jar;C:\Program Files\Java\jdk-1.8\jre\lib\deploy.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk-1.8\jre\lib\javaws.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jce.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jfr.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jsse.jar;C:\Program Files\Java\jdk-1.8\jre\lib\management-agent.jar;C:\Program Files\Java\jdk-1.8\jre\lib\plugin.jar;C:\Program Files\Java\jdk-1.8\jre\lib\resources.jar;C:\Program Files\Java\jdk-1.8\jre\lib\rt.jar;C:\MyData\JavaData\WorkSpace\idea-projects\nacos-discovery-cloud-producer\target\classes;C:\localRepository\org\springframework\boot\spring-boot-starter\2.7.18\spring-boot-starter-2.7.18.jar;C:\localRepository\org\springframework\boot\spring-boot\2.7.18\spring-boot-2.7.18.jar;C:\localRepository\org\springframework\spring-context\5.3.31\spring-context-5.3.31.jar;C:\localRepository\org\springframework\boot\spring-boot-autoconfigure\2.7.18\spring-boot-autoconfigure-2.7.18.jar;C:\localRepository\org\springframework\boot\spring-boot-starter-logging\2.7.18\spring-boot-starter-logging-2.7.18.jar;C:\localRepository\ch\qos\logback\logback-classic\1.2.12\logback-classic-1.2.12.jar;C:\localRepository\ch\qos\logback\logback-core\1.2.12\logback-core-1.2.12.jar;C:\localRepository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;C:\localRepository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;C:\localRepository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;C:\localRepository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\localRepository\org\springframework\spring-core\5.3.31\spring-core-5.3.31.jar;C:\localRepository\org\springframework\spring-jcl\5.3.31\spring-jcl-5.3.31.jar;C:\localRepository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar;C:\localRepository\org\springframework\boot\spring-boot-starter-web\2.7.18\spring-boot-starter-web-2.7.18.jar;C:\localRepository\org\springframework\boot\spring-boot-starter-json\2.7.18\spring-boot-starter-json-2.7.18.jar;C:\localRepository\com\fasterxml\jackson\core\jackson-databind\2.13.5\jackson-databind-2.13.5.jar;C:\localRepository\com\fasterxml\jackson\core\jackson-annotations\2.13.5\jackson-annotations-2.13.5.jar;C:\localRepository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.5\jackson-datatype-jdk8-2.13.5.jar;C:\localRepository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.5\jackson-datatype-jsr310-2.13.5.jar;C:\localRepository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.5\jackson-module-parameter-names-2.13.5.jar;C:\localRepository\org\springframework\boot\spring-boot-starter-tomcat\2.7.18\spring-boot-starter-tomcat-2.7.18.jar;C:\localRepository\org\apache\tomcat\embed\tomcat-embed-core\9.0.83\tomcat-embed-core-9.0.83.jar;C:\localRepository\org\apache\tomcat\embed\tomcat-embed-el\9.0.83\tomcat-embed-el-9.0.83.jar;C:\localRepository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.83\tomcat-embed-websocket-9.0.83.jar;C:\localRepository\org\springframework\spring-web\5.3.31\spring-web-5.3.31.jar;C:\localRepository\org\springframework\spring-beans\5.3.31\spring-beans-5.3.31.jar;C:\localRepository\org\springframework\spring-webmvc\5.3.31\spring-webmvc-5.3.31.jar;C:\localRepository\org\springframework\spring-aop\5.3.31\spring-aop-5.3.31.jar;C:\localRepository\org\springframework\spring-expression\5.3.31\spring-expression-5.3.31.jar;C:\localRepository\com\alibaba\cloud\spring-cloud-starter-alibaba-nacos-discovery\2021.0.5.0\spring-cloud-starter-alibaba-nacos-discovery-2021.0.5.0.jar;C:\localRepository\com\alibaba\cloud\spring-cloud-alibaba-commons\2021.0.5.0\spring-cloud-alibaba-commons-2021.0.5.0.jar;C:\localRepository\com\alibaba\nacos\nacos-client\2.2.0\nacos-client-2.2.0.jar;C:\localRepository\com\alibaba\nacos\nacos-auth-plugin\2.2.0\nacos-auth-plugin-2.2.0.jar;C:\localRepository\com\alibaba\nacos\nacos-encryption-plugin\2.2.0\nacos-encryption-plugin-2.2.0.jar;C:\localRepository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;C:\localRepository\com\fasterxml\jackson\core\jackson-core\2.13.5\jackson-core-2.13.5.jar;C:\localRepository\org\apache\httpcomponents\httpasyncclient\4.1.5\httpasyncclient-4.1.5.jar;C:\localRepository\org\apache\httpcomponents\httpcore\4.4.16\httpcore-4.4.16.jar;C:\localRepository\org\apache\httpcomponents\httpcore-nio\4.4.16\httpcore-nio-4.4.16.jar;C:\localRepository\org\apache\httpcomponents\httpclient\4.5.14\httpclient-4.5.14.jar;C:\localRepository\io\prometheus\simpleclient\0.15.0\simpleclient-0.15.0.jar;C:\localRepository\io\prometheus\simpleclient_tracer_otel\0.15.0\simpleclient_tracer_otel-0.15.0.jar;C:\localRepository\io\prometheus\simpleclient_tracer_common\0.15.0\simpleclient_tracer_common-0.15.0.jar;C:\localRepository\io\prometheus\simpleclient_tracer_otel_agent\0.15.0\simpleclient_tracer_otel_agent-0.15.0.jar;C:\localRepository\com\alibaba\spring\spring-context-support\1.0.11\spring-context-support-1.0.11.jar;C:\localRepository\org\springframework\cloud\spring-cloud-commons\3.1.5\spring-cloud-commons-3.1.5.jar;C:\localRepository\org\springframework\security\spring-security-crypto\5.7.11\spring-security-crypto-5.7.11.jar;C:\localRepository\org\springframework\cloud\spring-cloud-context\3.1.5\spring-cloud-context-3.1.5.jar;C:\localRepository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar" com.example.nacosdiscoverycloudprovider.NacosDiscoveryCloudProducerApplication 2024-08-17 10:18:49.910 INFO 87244 --- [ main] c.a.n.client.env.SearchableProperties : properties search order:PROPERTIES->JVM->ENV->DEFAULT_SETTING . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.18) 2024-08-17 10:18:50.044 INFO 87244 --- [ main] n.NacosDiscoveryCloudProducerApplication : Starting NacosDiscoveryCloudProducerApplication using Java 1.8.0_421 on Hasee-PC with PID 87244 (C:\MyData\JavaData\WorkSpace\idea-projects\nacos-discovery-cloud-producer\target\classes started by btcho in C:\MyData\JavaData\WorkSpace\idea-projects\nacos-discovery-cloud-producer) 2024-08-17 10:18:50.044 INFO 87244 --- [ main] n.NacosDiscoveryCloudProducerApplication : No active profile set, falling back to 1 default profile: "default" 2024-08-17 10:18:50.567 INFO 87244 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=6fd54010-1d76-3fba-bc3f-71b99c1d8fe3 2024-08-17 10:18:50.813 INFO 87244 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2024-08-17 10:18:50.814 INFO 87244 --- [ main] o.a.catalina.core.AprLifecycleListener : Loaded Apache Tomcat Native library [1.3.0] using APR version [1.7.4]. 2024-08-17 10:18:50.814 INFO 87244 --- [ main] o.a.catalina.core.AprLifecycleListener : APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true]. 2024-08-17 10:18:50.814 INFO 87244 --- [ main] o.a.catalina.core.AprLifecycleListener : APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] 2024-08-17 10:18:50.820 INFO 87244 --- [ main] o.a.catalina.core.AprLifecycleListener : OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024] 2024-08-17 10:18:50.830 INFO 87244 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2024-08-17 10:18:50.830 INFO 87244 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.83] 2024-08-17 10:18:51.003 INFO 87244 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-08-17 10:18:51.003 INFO 87244 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 928 ms 2024-08-17 10:18:52.320 INFO 87244 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2024-08-17 10:18:52.390 INFO 87244 --- [ main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. 2024-08-17 10:18:52.390 INFO 87244 --- [ main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. 2024-08-17 10:18:54.047 INFO 87244 --- [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, DEFAULT_GROUP nacos-producer 192.168.237.1:8080 register finished 2024-08-17 10:18:54.311 INFO 87244 --- [ main] n.NacosDiscoveryCloudProducerApplication : Started NacosDiscoveryCloudProducerApplication in 5.011 seconds (JVM running for 5.857) 2024-08-17 10:20:19.054 INFO 87244 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2024-08-17 10:20:19.054 INFO 87244 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2024-08-17 10:20:19.055 INFO 87244 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms 2024-08-17 10:20:21.801 ERROR 87244 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://nacos-consumer/echo/peter": nacos-consumer; nested exception is java.net.UnknownHostException: nacos-consumer] with root cause java.net.UnknownHostException: nacos-consumer at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:196) ~[na:1.8.0_421] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162) ~[na:1.8.0_421] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) ~[na:1.8.0_421] at java.net.Socket.connect(Socket.java:606) ~[na:1.8.0_421] at java.net.Socket.connect(Socket.java:555) ~[na:1.8.0_421] at sun.net.NetworkClient.doConnect(NetworkClient.java:180) ~[na:1.8.0_421] at sun.net.www.http.HttpClient.openServer(HttpClient.java:499) ~[na:1.8.0_421] at sun.net.www.http.HttpClient.openServer(HttpClient.java:594) ~[na:1.8.0_421] at sun.net.www.http.HttpClient.(HttpClient.java:278) ~[na:1.8.0_421] at sun.net.www.http.HttpClient.New(HttpClient.java:375) ~[na:1.8.0_421] at sun.net.www.http.HttpClient.New(HttpClient.java:393) ~[na:1.8.0_421] at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1240) ~[na:1.8.0_421] at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167) ~[na:1.8.0_421] at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061) ~[na:1.8.0_421] at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:995) ~[na:1.8.0_421] at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:76) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:782) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:717) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:340) ~[spring-web-5.3.31.jar:5.3.31] at com.example.nacosdiscoverycloudprovider.controller.ProducerController.produce(ProducerController.java:19) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_421] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_421] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_421] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_421] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.31.jar:5.3.31] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.31.jar:5.3.31] at javax.servlet.http.HttpServlet.service(HttpServlet.java:529) ~[tomcat-embed-core-9.0.83.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.31.jar:5.3.31] at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[tomcat-embed-core-9.0.83.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.31.jar:5.3.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.31.jar:5.3.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.31.jar:5.3.31] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.31.jar:5.3.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) ~[tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.83.jar:9.0.83] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.83.jar:9.0.83] at java.lang.Thread.run(Thread.java:750) [na:1.8.0_421] 我查了下,restTemplate是支持服务名调用的,问题到底出在哪里呢? 已解决,要添加如下依赖: org.springframework.cloud spring-cloud-loadbalancer
nacos修改密码后为什么会导致服务起不来。nacos前台页面提示user not found 。服务启动时报错,与修改的密码不匹配 成功启动服务
使用Tornado框架,向2.0版本的nacos注册服务,然后每隔5秒发送心跳。注册服务,发送心跳都是用的V2版本的API。 可以成功注册,在日志也可以看到每隔5秒1次的心跳发送成功,但是在nacos的管理页面刷新实例列表,实例数和健康实例数一直在变,不稳定。 我会有4个服务节点注册到nacos, 实例数和健康实例数一直在1到4之前变化,每次刷新管理平台页面都不一样。 请问是什么原因呢?有没有人遇到过这个问题,, https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241207/2d5d060d7cfd28448f750173cd3e42bc.png nacos客户端类 import json, tornado.gen import aiohttp from libs.apollo.apollo_util import init_ip from libs.apollo.client import AsyncApollo import logging import asyncio logger = logging.getLogger(__name__) DEFAULT_GROUP_NAME = "DEFAULT_GROUP" class NacosException(Exception): pass class NacosRequestException(NacosException): pass class NacosClient(object): def __init__(self, server_addresses, namespace=None, username=None, password=None): self.server_list = server_addresses.split(',') self.current_server = self.server_list[0] self.namespace = namespace self.username = username self.password = password self.server_offset = 0 self.service_ip = init_ip() def change_server(self): self.server_offset = (self.server_offset + 1) % len(self.server_list) self.current_server = self.server_list[self.server_offset] def get_server(self): return self.current_server def _build_metadata(self, metadata, params): if metadata: if isinstance(metadata, dict): params["metadata"] = json.dumps(metadata) else: params["metadata"] = metadata async def _async_post(self, url, **kwargs): conn = aiohttp.TCPConnector(enable_cleanup_closed=True, ssl=False, limit=5) async with aiohttp.ClientSession(connector=conn) as session: async with session.post(url, timeout=10, **kwargs) as response: return await response.json() async def _async_put(self, url, **kwargs): conn = aiohttp.TCPConnector(enable_cleanup_closed=True, ssl=False, limit=5) async with aiohttp.ClientSession(connector=conn) as session: async with session.put(url, timeout=10, **kwargs) as response: return await response.json() async def _async_delete(self, url, **kwargs): conn = aiohttp.TCPConnector(enable_cleanup_closed=True, ssl=False, limit=5) async with aiohttp.ClientSession(connector=conn) as session: async with session.delete(url, timeout=10, **kwargs) as response: return await response.json() async def register(self, service_name, port, cluster_name='default', weight=1.0, metadata=None, enable=True, healthy=True, ephemeral=True, group_name=DEFAULT_GROUP_NAME): url = '/nacos/v2/ns/instance' params = { 'ip': self.service_ip, 'port': port, 'serviceName': service_name, 'weight': weight, 'enable': enable, 'healthy': healthy, 'clusterName': cluster_name, 'ephemeral': ephemeral, 'groupName': group_name, 'namespaceId': self.namespace, 'username': self.username, 'password': self.password } self._build_metadata(metadata, params) tries = 0 while True: try: response = await self._async_post(self.current_server + url, data=params) logger.info(response) if response['data'] == 'ok': return 'ok' except Exception as e: logger.error(e) tries += 1 if tries >= len(self.server_list): raise NacosRequestException("All server are not available") self.change_server() async def deregister(self, service_name, port, cluster_name='default', ephemeral=True, group_name=DEFAULT_GROUP_NAME): url = '/nacos/v2/ns/instance' params = { 'serviceName': service_name, 'ip': self.service_ip, 'port': port, 'namespaceId': self.namespace, 'healthy': True, 'username': self.username, 'password': self.password, 'ephemeral': ephemeral, 'groupName': group_name, 'clusterName': cluster_name } tries = 0 while True: try: response = await self._async_delete(self.current_server + url, data=params) logger.info(response) if response['data'] == 'ok': return 'ok' except Exception as e: logger.error(e) tries += 1 if tries >= len(self.server_list): raise NacosRequestException("deregister instance error!") self.change_server() async def send_beat(self, service_name, port, cluster_name='default', weight=1.0, ephemeral=True, group_name=DEFAULT_GROUP_NAME): url = '/nacos/v2/ns/instance/beat' beat_data = { 'serviceName': f'{group_name}@@{service_name}', 'ip': self.service_ip, 'port': port, 'weight': weight, 'ephemeral': ephemeral, 'cluster': cluster_name } params = { 'serviceName': f'{group_name}@@{service_name}', 'beat': json.dumps(beat_data), 'groupName': group_name, 'namespaceId': self.namespace, 'username': self.username, 'password': self.password } tries = 0 while True: try: response = await self._async_put(self.current_server + url, data=params) logger.info(response) if response['code'] == 10200: return 'ok' except Exception as e: logger.error(e) tries += 1 if tries >= len(self.server_list): return self.change_server() async def init_nacos_new(): host = await AsyncApollo.get_value('nacos_host', namespace='risk-model-nacos') namespace = await AsyncApollo.get_value('nacos_namespace', namespace='') username = await AsyncApollo.get_value('nacos_username', namespace='') password = await AsyncApollo.get_value('nacos_password', namespace='') return NacosClient(host, namespace, username, password) nacos_client = asyncio.get_event_loop().run_until_complete(init_nacos_new()) async def register_instance(service_name): logger.info('start register instance to nacos!') await nacos_client.register(service_name, 8094) async def deregister_instance(service_name): logger.info('start deregister instance from nacos!') await nacos_client.deregister(service_name, 8094) async def send_heartbeat(service_name): while True: await nacos_client.send_beat(service_name, 8094) logger.info('Send heartbeat successful') await tornado.gen.sleep(5) 项目启动: def start_app(args): io_loop = tornado.ioloop.IOLoop.current() app = Application( urls, log_function=log_func, debug=CurrentConfig.DEBUG ) app.listen(args.port, args.host, xheaders=True) io_loop.spawn_callback(register_instance, name) io_loop.spawn_callback(send_heartbeat, name) io_loop.start()
基本环境: 1. 根据手册,本地搭建一个nacos server, 版本 2.2.3, standalone 2. 利用apisix,给nacos server加一层网关代理{ "uri": "/nacos/*", "name": "local.8848", "upstream_id": "xx", "enable_websocket": true, "status": 1 } { "nodes": [ { "host": "host.docker.internal", "port": 8848, "weight": 100 } ], "type": "roundrobin", "pass_host": "pass", "name": "local.nacos" } 访问: "http://localhost:9080/nacos/index.html" 都很正常的,也可以用 curl -X GET "http://localhost:9080/nacos/v1/cs/configs?dataId=nacos.cfg.dataId" 配置了值: namespace=public dataId=nacos.cfg.dataId group=DEFAULT_GROUP value: // properties time.pattern=yyyy-mm-dd 目前问题是: 1. 用spring boot读取不到配置 spring boot里的配置就非常简单, nacos.config.server-addr=http://localhost:9080 spring boot代码: // 版本 0.2.12 @SpringBootApplication @NacosPropertySource(dataId = "nacos.cfg.dataId", type = ConfigType.PROPERTIES, autoRefreshed = true) public class NacosConfigApplication { public static void main(String[] args) { SpringApplication.run(NacosConfigApplication.class, args); } } @Controller public class ConfigController { @NacosValue(value = "${time.pattern}", autoRefreshed = true) private String value; @RequestMapping(value = "/config/get", method = GET) @ResponseBody public String get() { return value; } } 直接用sdk也不行 com.alibaba.nacos nacos-client 2.3.0 // 2.2.3, 2.2.4都试过 public static void main(String[] args) throws Exception { String serverAddr = "http://localhost:9080"; 就可以了 String dataId = "nacos.cfg.dataId"; String group = "DEFAULT_GROUP"; Properties properties = new Properties(); properties.put(PropertyKeyConst.SERVER_ADDR, serverAddr); ConfigService configService = NacosFactory.createConfigService(properties); String content = configService.getConfig(dataId, group, 5000); // 换成 serverAddr=http://localhost:8848, content就是配置的值了 System.out.println(content); // content=null, }
大佬们好: 我是一名java小开发,最近收到了主管让我升级nacos配置中心的需求。我现在碰到了一个问题 问题背景:测试的nacos服务端版本是2.2.1,客户端版本有1.3.4也有1.3.3,然后nacos有两个节点,有一个nginx做负载,各客户端配置的是域名作为服务发现 生产环境nacos版本也是2.2.1,但是没有nginx,所以都配置的是nacos 的 多节点ip地址。 问题描述:当我把测试环境的nacos服务端版本升级成2.2.3的时候,各系统应用服务疯狂报错403 ,404。当我详细查询nacos官网的时候,我发现2.0以上的nacos版本中通信由http变为了tcp,所以我将测试环境的nginx转发改为了tcp协议转发,后面这个问题就解决了。但是我产生了两个疑问 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241121/84e0b67e12b7af920e623e85106ccc53.png) 问题一:测试环境本来就是2.2.1,如果是因为2.0协议发生问题,那早就应该发生问题了,而不是从2.2.1到2.2.3的时候才报错,所以我不明白这是为什么。 问题二:生产环境没有nginx,各系统配置的是多节点ip,所以我理解生产环境直接升级就行了,不需要关心 http转tcp 协议的问题 问题三:为什么这个错误是403,404呢? 请各位大佬谅解一下小白的问题,给与答复,感谢您们的支持