首页 文章

Springboot Microservice已在Eureka注册,但无法点击它

提问于
浏览
1

基本问题所以只是想确保我理解正确 .

我创建了一个发现服务器:

@SpringBootApplication
@EnableEurekaServer
public class DisocveryServiceApplication {

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

并成功注册微服务;如果我点击localhost:8761我可以看到我的发现服务找到了微服务 . 如果我在他们指定的端口上击中它们,微服务运行正常 . 例如,我有一个名为creds,如果我点击localhost:9000则返回 . 但是,我的理解是我现在应该能够命中localhost:8761 / creds并且它将显示相同的输出,但这不起作用 .

我误会了吗?关于我应该尝试什么的任何建议?

creds bootstrap.yml:

spring:
  application:
    name: creds

creds application.yml服务器:port:9000 eureka:client:serviceUrl:defaultZone:http://localhost:8761/eureka/

发现application.yml

server:
  port: ${PORT:8761}

eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
    server:
      waitTimeInMsWhenSyncEmpty: 0

2 回答

  • 0

    另一个 @EnableEurekaClient 带注释的Spring启动Web服务可以通过使用 RestTemplate 注入 RestTemplate 来访问您的creds webservice,其中 creds 是在Eureka注册的 spring.application.name .

    如果您想从Web应用程序外部访问creds webservice,那么您想要的是像Zuul http://github.com/Netflix/zuul这样的代理 .

  • 1

    只需向Eureka服务器注册微服务,就不会确保您可以访问网关下的微服务 . Eureka Server不是网关服务器,它只是一个服务注册表 . 您可以将Eureka视为另一项服务,其中包含有关群集中所有其他服务的信息 . 除了向已注册的客户获取信息之外,它不会做任何其他事情 . 您可能需要Gateway服务才能在Eureka Server下路由您的请求 . Zuul代理使用其服务ID或配置的URL将发送到下层微服务的请求路由 .

    在类路径中添加此依赖项 .

    dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zuul</artifactId>
        <version>1.0.4.RELEASE</version>
    </dependency>
    

    在您的属性filezuul中添加此配置:

    routes:
        serv1:
          path: /serv1/**
          serviceId: http://localhost:8080/serv1
        serv2:
          path: /serv2/**
          serviceId: serv2
    

    这将创建一个动态路由器,将您的请求路由到适当的服务实例 . 这还为您的服务提供了服务器端负载 balancer 器

相关问题