Spring微服务注册但收到UnknownHostException

时间:2017-07-24 10:29:24

标签: java spring spring-boot microservices resttemplate

我在调用我的微服务时遇到了问题。

我运行服务器,我的微服务正确注册:

enter image description here

但是当我尝试在微服务中调用一个方法时,它失败了Charts

这就是我的UnknownHostExceptionRestTemplate bean的制作方式:

MsImageService

这就是我在服务中自动装配它的方式:

@Configuration
@EnableAsync
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
            return new RestTemplate();
    }

    @Bean
    public MsImageService msImageService() {
            return new MsImageService("http://IMAGES-MICROSERVICE");
    }
}

这些是我在服务器上使用的属性:

@Autowired
@LoadBalanced
private RestTemplate restTemplate;

这是我服务中的属性:

server.port=8761

spring.thymeleaf.enabled=false

eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.default-zone=http://${eureka.instance.hostname}:${server.port}/eureka/

logging.level.com.netflix.eureka=INFO
logging.level.com.netflix.discovery=INFO

感谢任何帮助!

谢谢!

1 个答案:

答案 0 :(得分:0)

服务器属性中,尝试删除以下行。它使您服务器内的eureka客户端无法从eureka服务器获取其他服务器信息。

eureka.client.fetch-registry=false

同时检查您的Application类服务器是否有@EanbleEurekaClient@EnableDiscoveryClient注释。您的服务器应用程序也必须是Eureka客户端才能获取其他人。

服务属性中删除以下行。根本不需要覆盖instance-id(但是,它可能与您的问题无关)

eureka.instance.instance-id=${spring.application.name}

如果您需要完整示例,请尝试检查此example代码。 (Readme.md是用韩文写的,但代码非常简单。所以没有自述文件就可以读取代码没有问题)