Микросервис Springboot зарегистрирован в Eureka, но не может попасть в него

Основной вопрос, поэтому просто хочу убедиться, что я все правильно понимаю.

Я создал сервер обнаружения:

@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 server: 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

person Matt Boyle    schedule 08.04.2017    source источник


Ответы (2)


Другой @EnableEurekaClient аннотированный веб-сервис загрузки Spring может получить доступ к вашему веб-сервису creds с помощью введенного RestTemplate с http://creds/..., где creds - это spring.application.name, зарегистрированный в Eureka.

Если вы хотите получить доступ к веб-сервису creds извне своего веб-приложения, то вам нужен прокси, например Zuul http://github.com/Netflix/zuul.

person G. Fiedler    schedule 08.04.2017

Простая регистрация микросервиса на сервере Eureka не гарантирует, что вы можете получить доступ к микросервису через шлюз. Eureka Server - это не сервер-шлюз, это просто служебный реестр. Вы можете рассматривать Eureka как еще одну службу, которая хранит информацию обо всех других службах в кластере. Он не делает ничего, кроме предоставления информации зарегистрированным клиентам. Вам может понадобиться служба шлюза для маршрутизации вашего запроса на сервере Eureka. Zuul Proxy направляет запрос, поступающий к нему, в базовые микросервисы, используя его идентификатор службы или настроенный 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

Это создаст динамический маршрутизатор, который направляет ваш запрос соответствующим экземплярам службы. Это также обеспечивает балансировщик нагрузки на стороне сервера для ваших служб.

person Praneeth Ramesh    schedule 08.04.2017