解决eureka服务注册名报错

解决eureka服务注册名报错

解决eureka服务注册名报错

简介

Eureka是Netflix开源的一款服务发现和负载均衡工具,用于在云环境中定位微服务实例。它允许微服务注册自己和发现其他微服务,并提供了一种简单的方式来调用其他服务的实例。

Eureka的核心概念是服务注册和服务发现。在Eureka中,每个微服务实例都可以向Eureka服务器注册自己的信息,包括服务名称、实例ID、IP地址和端口号等。Eureka服务器会维护一个服务注册表,用于存储所有已注册的微服务实例信息。

当一个微服务需要调用其他微服务时,它可以向Eureka服务器发起服务发现请求,获取目标微服务的实例列表。Eureka服务器会返回一个响应,包含所有可用的目标微服务实例信息。微服务可以通过负载均衡算法选择一个合适的目标实例进行调用。

Eureka还具有高可用性的特性。它通过使用Eureka服务器集群来实现,每个服务器都具有相同的服务注册表,可以相互进行复制和同步。当一台Eureka服务器出现故障时,其他服务器可以接管其功能,保证服务的正常运行。

除了服务注册和服务发现功能外,Eureka还提供了一些其他的特性,如健康检查、自我保护机制和客户端实例缓存等。这些特性都可以帮助开发人员更好地管理和监控微服务架构。

总结来说,Eureka是一款强大的服务发现和负载均衡工具,可以帮助开发人员在云环境中构建可靠的微服务架构。它简化了微服务之间的通信和调用,并提供了高可用性和易用性的解决方案。

正文

使用RestTemplate.getForObject( url,Class)方法中,url直接使用服务注册名进行拼接后无法正常远程调用。

如下

java 复制代码
String url="http://provider-service/provider/hello/"+id;
return restTemplate.getForObject(url,String.class);

报错404,说明没访问到

我的解决方法:换依赖版本

原来的版本

java 复制代码
<parent>
      <artifactId>spring-boot-starter-parent</artifactId>
      <groupId>org.springframework.boot</groupId>
      <version>2.6.5</version>
</parent>
<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>2021.0.1</version>
      <type>pom</type>
      <scope>import</scope>
</dependency>

更改为下面的

java 复制代码
<parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.2.3.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Hoxton.SR1</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
</dependencies>

再次启动运行成功

如果有其他解决方案欢迎分享

相关推荐
骆驼10243 天前
40分钟的Docker实战攻略
云原生·eureka
qsqya4 天前
ceph/daemon安装部署
ceph·云原生·eureka
DogDaoDao4 天前
Docker全解析:从核心概念到2025年AI集成新特性
人工智能·docker·eureka·程序员
Lin_Aries_04214 天前
容器使用卷
linux·运维·docker·云原生·容器·eureka
一个帅气昵称啊5 天前
Docker命令大全:从基础到高级实战指南
docker·容器·eureka·架构·.net
Dontla9 天前
Dockerfile解析器指令(Parser Directive)指定语法版本,如:# syntax=docker/dockerfile:1
java·docker·eureka
Dxy12393102169 天前
Docker常用命令详解
docker·容器·eureka
wp90909 天前
Docker命令大全
docker·云原生·eureka
傻傻虎虎9 天前
【CentOS7】docker安装成功后测试,报Unable to find image ‘hello-world:latest‘ locally
docker·容器·eureka
惜.己9 天前
Docker启动失败 Failed to start Docker Application Container Engine.
spring cloud·docker·eureka