Связь между микросервисом с использованием ServiceID из обнаружения вместо хоста каталога? - PullRequest
0 голосов
/ 04 октября 2018

Я новый микросервис, я читаю пример с сервером обнаружения, я вижу, что мы можем вызвать другой API-интерфейс микросервиса, используя url, например: http://inventory-service/api/inventory/{productCode}.«Инвентаризация-сервис» - это экземпляр сервиса, который я зарегистрировал в discovery.Поэтому мой вопрос заключается в том, что является преимуществом использования serviceId intead узла каталога вызовов: порт: http://localhost:9009/api/inventory/{productCode}.

1 Ответ

0 голосов
/ 22 октября 2018

Позвольте нам предположить, что вы зарегистрировали службу инвентаризации на сервере Eureka, настроив Eureka serviceUrl в src / main / resources / bootstrap.properties.

 spring.application.name=inventory-service
 eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

Затем создайте службу инвентаризации и запустите 2 ее экземпляра, запустивследующие команды.

 java -jar -Dserver.port=9001 target/inventory-service-0.0.1-SNAPSHOT-exec.jar

 java -jar -Dserver.port=9002 target/inventory-service-0.0.1-SNAPSHOT-exec.jar

Когда вы посещаете Eureka Dashboard http://localhost:8761/, вы увидите 2 зарегистрированных инвентаря-службы.

Если вы хотите применить Client LoadДля балансировки из вашего потребительского приложения вам потребуется конфигурация, подобная этой:

 server.ribbon.listOfServers=localhost:9001,localhost:9002 
 server.ribbon.eureka.enabled=false

Если вы хотите запускать новые экземпляры, вам необходимо зарегистрировать их в конфигурации вашего потребителя.

СServiceID Вам не нужно беспокоиться об этом, потому что все экземпляры будут регистрироваться с одинаковым идентификатором.Он будет добавлен автоматически в список доступных серверов. Это одно из преимуществ использования ServiceId вместо имени хоста

...