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

UnknownHostException spring、zuul、eureka

井兴怀
2023-03-14

我刚接触spring,尝试在两个微服务之间进行通信。我创建了四个项目ProjectoneProjectTwoProjectZuulProjecteureka

ProjectOne,ProjectTwo-微服务projectzuul-zuul Api gateway ProjectEureka-Eureka服务器

我试图从Projectone调用aget方法到ProjectTwo,但总是显示java.net.UnknownHostExceptionProjectTwo

ProjectOne文件

Application.Properties

#for refering in zuul
spring.application.name = projectone


#database configuration

spring.datasource.url= jdbc:postgresql://192.168.2.6:5432/cliff_test
spring.datasource.username=postgres
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=create-drop




#Eurekka server configuration



#eurekka client configuration
eureka.client.register-with-eureka = true
eureka.client.fetch-registry = true






  // my port
  server.port =4444

applicaion.yml

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:9999/eureka/
@RestController
public class TestController {


    @Autowired
    UserRepository mRepository;

    @Autowired
    private RestTemplate mRestTemplate;



    @GetMapping(value = "/test/{username}/{lastname}")
    public  String  create(@PathVariable String username,@PathVariable String lastname){

        UserModel mModel = new UserModel(username,lastname);
        mRepository.save(mModel);
       String dataFromSecond = mRestTemplate.getForObject("http://projecttwo/test",String.class);
       // String dataFromSecond = mRestTemplate.getForObject("http://projecttwo/test",String.class);
        System.out.println("Data from :"+dataFromSecond);
        return "hello world";
    }

}
@EnableAutoConfiguration
@SpringBootApplication
@EnableEurekaClient
public class ProjectOneApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProjectOneApplication.class, args);
    }


    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
spring.application.name = projecttwo

server.port = 2222


spring.datasource.url= jdbc:postgresql://192.168.2.6:5432/cliff_test
spring.datasource.username=postgres
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=create-drop

#eurekka client configuration
eureka.client.register-with-eureka = true
eureka.client.fetch-registry = true

eureka:client:serviceurl:defaultzone:http://localhost:9999/eureka/

TestController.java

@restcontroller公共类TestController{@getmapping(value=“/test”)公共字符串test(){system.out.println(“hellow call carrieved...........................................................

ProjectZuul文件

Application.Properties

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:9999/eureka/


zuul:
    prefix: /api
    routes:
        projectoneservice:
            path: /projectone/**
            serviceId: projectone
        zuulservice:
            path: /projectzuul/**
            serviceId: projectzuul
        projecttwoservice:
            path: /projecttwo/**
            serviceId: projecttwo

尤里卡服务器

谢谢你的帮助。


共有1个答案

常源
2023-03-14

我发现了我的问题并解决了

我的应用程序问题是projectone主类中的bean初始化。

我在Bean初始化中添加了@loadbalance注释。

@EnableAutoConfiguration
@SpringBootApplication
@EnableEurekaClient
public class ProjectOneApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProjectOneApplication.class, args);
    }

    @LoadBalanced //adding this line solved the issue
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
 类似资料:
  • Zuul 是 Netflix 开源的网关组件。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。Zuul 可以适当的对多个 Amazon Auto Scaling Groups 进行路由请求。 Zuul 包含多个组件: zuul-core  zuul-simple-webapp  zuul-netflix  zuul-netflix-webapp

  • introduction zuul用来提供动态路由、监控、授权、安全、调度等等的边缘服务(edge service) ZuulFilter ZuulFilter是Zuul中核心组件,通过继承该抽象类,覆写几个关键方法达到自定义调度请求的作用,这里filter不是java web中的filter,不要混淆. new ZuulFilter() { @Override

  • 我是SpringBoot(云)的新手,将从事一个新项目 我们的项目架构师设计了这样的新应用程序: 一个带有Angulle-2的前端Spring Boot应用程序(也是微服务)。 一个尤里卡服务器,其他微服务将连接到该服务器。 ZUUL代理服务器,它将连接到前端和镜像服务。 我需要单独的ZUUL代理服务器吗?我的意思是,使用与ZUUL服务器相同的前端应用程序的利弊是什么 MicorService-1

  • 我有三个spring boot微服务,它们使用spring Eureka server和zuul作为网关。我有auth微服务,这是zuul网关,验证用户。我有另外两个服务在不同的端口运行。如果我通过zuul网关调用,我可以在jwt的帮助下保护这两个服务,但由于我知道两个微服务端口和url,我可以直接调用并获得响应,而不需要通过网关url。所以我如何保护这两个微服务。请帮助我分享两个微服务之间的安全

  • 有人已经设置了Spring Boot 2 Release和sping-Cloud-starter-Netflix-zuul? 如果我在pom文件中添加此依赖项,则会出现运行时错误:。

  • 我正面临使用Zuul和Ribbon的问题。我也在微服务注册中心使用尤里卡。 null 当我启动我的微服务生态系统并尝试使用ribbon-service API(zuulservice:8761/ribbon-service/)时,我得到以下错误: com.netflix.zuul.exception.zuulException:org.springframework.cloud.netflix.z