Я не могу думать в трех случаях.Как услуги Lagom потребляют другие услуги?
- служба ЛАГ потребляет другую услугу ЛАГА в том же самом кластере
- служба ЛАГА потребляет другую услугу ЛАГА в другом кластере
- служба ЛАГА потребляет внешнюю службу без ЛАГА
- внешней службы без ЛАГА потребляет услугу ЛАГА
1. служба ЛАГ потребляет другую услугу ЛАГА в том же кластере
Для этого случая подход заключается в том, что ServiceAImpl зависит от API ServiceB, который привязан к конкретной реализации, которая будет введена в ServiceAImpl.
import com.google.inject.AbstractModule;
import com.lightbend.lagom.javadsl.server.ServiceGuiceSupport;
import docs.services.HelloService;
public class Module extends AbstractModule implements ServiceGuiceSupport {
protected void configure() {
bindClient(HelloService.class);
}
}
public class MyServiceImpl implements MyService {
private final HelloService helloService;
@Inject
public MyServiceImpl(HelloService helloService) {
this.helloService = helloService;
}
@Override
public ServiceCall<NotUsed, NotUsed, String> sayHelloLagom() {
return (id, msg) -> {
CompletionStage<String> response = helloService.sayHello().invoke("Lagom");
return response.thenApply(answer ->
"Hello service said: " + answer
);
};
}
}
Если я правильно понимаю, для того, чтобы потреблять API службы в этом случае, как клиенты должны находиться в одном кластере. Однако ЛАГ says, что
кластер должен только пролет узлы, работающие под ту же услугу.
В этом случае у нас есть два разных типа услуг.
- «Тот же сервис» означает службу верхнего уровня, API которой подвергается внешним службам?
- В Lagom 1 Microservice = 1 сервис с внешними API + n внутренними службами?
2. Служба ЛАГ потребляет другую услугу ЛАГА в другом кластере
says Документация:
Обратите внимание, что если услуга вы хотите общаться с фактически услугой ЛАГА, вы можете прочитать документацию для integrating with an external Lagom projects.
Почему настраивается зависимость от API-интерфейса службы, а не от IP-порта и внешней службы Lagom?
3. Служба ЛАГ потребляет внешний сервис, не ЛАГ
Первого, что вы должны сделать, это зарегистрировать каждую внешнюю службы в Service Locator.Предположим, мы хотим зарегистрировать внешний сервис под названием погода, запущенного на http://localhost:3333, здесь является то, что мы хотели бы добавить к сборке:
lagomUnmanagedServices in ThisBuild := Map("weather" -> "http://localhost:3333")
Что такое контракт с этим IP? Что должно быть за этим?
4. Внешняя служба, не ЛАГ потребляет услугу ЛАГА
мне придется использовать Third-Party Registration Pattern до ЛАГА поддержки self registration pattern?
Я нахожу ваш вопрос, так запутанный ... –
согласен с тем, что многие из высокоуровневых документов Lagom обсуждают развязанные службы, а развертывание передает простоту 1 кластера .... – Matt