java.net.UnknownHostException: cloud-member 服务找不到

发布时间 2023-10-20 11:31:16作者: 小-伙计

起初我只是简单的想用其他服务调用认证服务生成token,所以我重新创建了一个微服务项目,环境和配置搭好之后,每个服务都能独立执行,但是就在远程调用的时候报错了。

报错:java.net.UnknownHostException: cloud-member 

我上网查了一下,

可能的原因有:

  1. 网络问题:请检查您的网络连接是否正常,确保可以正常访问"cloud-member"。
  2. Nacos配置错误:请检查您的Nacos配置文件(如application.properties或application.yml),确保"cloud-member"的地址和端口配置正确。
  3. Nacos服务未启动:请检查Nacos服务是否已经启动,如果没有启动,请先启动Nacos服务

我其他微服务项目可以正常访问,排除网络问题

然后我去看nacos,服务也已经注册上去了

主启动类

@EnableDiscoveryClient 开启了服务注册与发现
@EnableFeignClients 开启了远程调用
 1 import org.springframework.boot.SpringApplication;
 2 import org.springframework.boot.autoconfigure.SpringBootApplication;
 3 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 4 import org.springframework.cloud.openfeign.EnableFeignClients;
 5 
 6 @SpringBootApplication
 7 @EnableDiscoveryClient
 8 @EnableFeignClients(basePackages = {"com.xhj.auth.api"})
 9 public class CloudAuthApplication {
10 
11     public static void main(String[] args) {
12         SpringApplication.run(CloudAuthApplication.class, args);
13     }
14 
15 }

fiegn接口

 1 import org.springframework.cloud.openfeign.FeignClient;
 2 import org.springframework.web.bind.annotation.GetMapping;
 3 
 4 /**
 5  * @Author: xhj
 6  * @Date: 2023/10/19/22:32
 7  * @Description:
 8  */
 9 @FeignClient("cloud-member")
10 public interface AuthFiegn {
11 
12     @GetMapping("/member/token/getToken1")
13     String token();
14 }

nacos:服务也已经注册进去了

 然后我就跟换nacos版本 把 2.1.0 换成了 1.4.1 

重启项目 还是一样的报错

然后我想试一下直接写固定的ip地址可以不

@FeignClient("127.0.0.1:8080")

发现跑通了,说明openfiegn没有发现服务

然后我查了很多资料,选择了一个我感觉比较靠谱的一个

1 <dependency>
2     <groupId>org.springframework.cloud</groupId>
3     <artifactId>spring-cloud-loadbalancer</artifactId>
4 </dependency>

加入spring-cloud-loadbalancer依赖

重启项目 发现又报新的错误了

java.net.SocketTimeoutException: Read timed out

然后我想着有可能是我电脑问题,我把电脑重启,发现还是不行

天啦,我要崩溃了,放弃了家人们,先睡觉去了

第二天起床,我打开电脑,终于让我解决了

解决办法

 加入下面依赖发现可以了

 1 <dependency>
 2     <groupId>com.alibaba.cloud</groupId>
 3     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
 4     <!-- 排除ribbon的依赖 -->
 5     <exclusions>
 6         <exclusion>
 7             <groupId>org.springframework.cloud</groupId>
 8             <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
 9         </exclusion>
10     </exclusions>
11 </dependency>
12 <dependency>
13      <groupId>org.springframework.cloud</groupId>
14       <artifactId>spring-cloud-loadbalancer</artifactId>
15 </dependency>

 然后我尝试删掉 spring-cloud-loadbalancer 依赖

神奇的事情发生了,也可以跑通,啊、啊、啊 我要疯了,彻底迷茫了!!!

为什么???  两个字 缓存