Допустим, у меня есть два микросервиса, которые выглядят так:
У меня есть один сервис, в котором хранятся все вопросы и варианты их ответов. Второй сервис создает модули, которые будут использовать вопросы из первого сервиса.
Итак, у нас есть Question Service
и Module Service
.
Когда мы создаем модули:
- Клиент будет запрашивать вопросы
- Клиент отправит
question_id
с данными модуля
Когда пользователь попытается завершить этот модуль:
- Клиент будет запрашивать модуль
- По
question_id
он получит вопрос и его опции для показа в качестве теста.
Теперь есть главная проблема. Как служба Module узнает, что ответ пользователя правильный или нет?
Теперь я думаю, что два типа решения этой проблемы:
Клиент спросит Question Service
, если этот ответ правильный, а затем отправить результат на Module Service
. Однако этот метод ненадежен, поскольку запросы от Клиента могут быть подделаны и Module Service
будет хранить неверные результаты
Клиент отправит запрос проверки ответа на Module Service
, который затем отправит запрос на Question Service
путем прямого HTTP-вызова. Это также плохое решение, потому что это делает Module Service
тесно связанным с Question Service
.
Существуют ли какие-либо решения для отделения Module Service
от Question Service
?