Микросервис: перекрестная проверка и разделение услуг? - PullRequest
0 голосов
/ 26 декабря 2018

Давайте представим, что у меня есть Служба автомобиля и Служба бронирования (с использованием классического стека Spring Boot, Eureka, Zuul).

Когда я хочу забронировать автомобиль, если я хочу проверить, например, чтоавтомобиль существует, есть ли лучший способ сделать это, чем позвонить в Службу автомобиля из Службы бронирования?

Я бы хотел, чтобы приложение оставалось разъединенным.

Я думал, что мог бы получитьмикросервис Фасад, который может сделать эту проверку, но есть ли лучший способ сделать это?

существует ли шаблон для проверки, который может обеспечить разделение, или я должен просто забыть о проверке таких данных?

спасибо

1 Ответ

0 голосов
/ 26 декабря 2018

нет там нет.Вы должны позвонить в автосервис, чтобы проверить, существует ли автомобиль.Здесь нет технического решения.У вас есть служба транспортных средств, которая знает об автомобиле и службе бронирования, которая занимается бронированием.Но ресурс, который вы бронируете, должен быть подтвержден владельцем этого ресурса.

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

Однако,у вас может быть деловое решение вокруг этого.Кто-то позвонил бы в службу бронирования и передал бы информацию об автомобиле.Теперь служба вашего автомобиля может делиться информацией о транспортном средстве в двух полях.InventoryIssueTimestamp и InventoryExpiryTimestamp.Вы довольно много говорите, когда кто-то бронирует, я позволил им иметь инвентарь в течение n минут.Если бронирование сделано в течение n минут, вы хорошо, в противном случае вы делаете проверку статуса.

Могут быть похожие способы обдумать.Но это, скорее всего, чрезмерное проектирование, если только у вас нет особых случаев использования.В основном это чистый, чтобы сделать вызов проверки.Единственная причина, по которой я пытался объяснить этот сценарий, чтобы заставить вас думать вне технологического решения.

...