当前位置: 首页 > 知识库问答 >
问题:

微服务-RestTemplate

百里朝
2023-03-14

我有一个简单的设置,有一个Eureka服务注册服务器、一个用于公共API的服务和一个使用RESTTemplate从公共API调用的服务。Eureka告诉我服务已成功注册,但当我调用服务时

@Service
public class MyServiceService {

    @Autowired
    private RestTemplate restTemplate;

    private final String serviceUrl;

    public MyServiceService() {
        this.serviceUrl = "http://MY-SERVICE";
    }

    public Map<String, String> getTest() {

        Map<String, String> vars = new HashMap<>();
        vars.put("id", "1");

        restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory());

        return restTemplate.postForObject(serviceUrl+"/test", "", Map.class, vars);
    }
}

我得到以下异常

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 POST request for "http://MY-SERVICE/test": MY-SERVICE;
  nested exception is java.net.UnknownHostException: MY-SERVICE] with root cause java.net.UnknownHostException: MY-SERVICE

谢谢

共有1个答案

卫嘉泽
2023-03-14

对于将来可能碰巧遇到这个问题的任何人来说,我有完全相同的stacktrace,但在解决方案上略有不同。

从编码的角度来看,我的问题与配置无关。它与我运行代码的服务器有关。我忽略了一个事实,即它是在一个没有DNS的DMZ上,所以你必须手动映射一个域到一个IP。

或多或少,请确保在服务器上正确配置了DNS,因为从restTemplate的角度来看,它将抛出这个完全的StackTrace。

 类似资料:
  • 基本 Nest 微服务是一种使用与HTTP不同的传输层的应用程序。 安装 首先,我们需要安装所需的软件包: $ npm i --save @nestjs/microservices 概述 通常,Nest支持一系列内置的传输器。它们基于 请求-响应 范式,整个通信逻辑隐藏在抽象层之后。多亏了这一点,您可以轻松地在传输器之间切换,而无需更改任何代码行。我们不支持具有基于日志的持久性的流平台,例如 Ka

  • 我是测微计新手。有人能告诉我如何在spring boot中集中管理微服务指标吗? 在哪里可以获得influxdb中所有注册的服务信息、矩阵和存储的度量?

  • 我读了一些文章,看了一些视频,但在为这些微服务提供服务方面,没有找到具体的建议。我的理解是,他们应该使用自己的应用程序服务器。 我的问题是它们应该部署在不同的服务器上,还是没关系。 当它们在同一台服务器(计算机)上提供服务时,不会有端口冲突吗?

  • 在单体架构时,因为服务不会经常和动态迁移,所有服务地址可以直接在配置文件中配置,所以也不会有服务发现的问题。但是对于微服务来说,应用的拆分,服务之间的解耦,和服务动态扩展带来的服务迁移,服务发现就成了微服务中的一个关键问题。 服务发现分为客户端服务发现和服务端服务发现两种,架构如下图所示。 这两种架构都各有利弊,我们拿客户端服务发现软件Eureka和服务端服务发现架构Kubernetes/SkyD

  • 背景 当前有两个服务,分别是user-service和order-service,nacos服务列表中无法发现两个服务 排查 Nacos v2.2.3 依赖已引入,配置文件已配置addr 运行时未出现连接nacos的日志: 希望大佬们可以帮忙看看是什么问题 问题程序链接 https://oss-20001.oss-cn-qingdao.aliyuncs.com/cloud-demo.zip

  • 我实际上在研究微服务,我面临一个问题。 上下文 我正在开发两个微服务: 用户管理,基于spring,使用MySQL数据库 计划管理,基于ASP.NET与SQL Server数据库。此服务的唯一访问点是列出一些RESTFULendpoint的API,如 计费管理,基于MongoDB的node.js。 问题 > 我该怎么做才能只允许通过用户服务访问规划信息,而不耦合这两个服务?知道以后可以从其他地方访