#microservices #message-queue #high-availability
#микросервисы #очередь сообщений #высокая доступность
Вопрос:
Я пытаюсь создать архитектуру микросервиса, которая, в основном, состоит из службы, имеющей общедоступную конечную точку, которая принимает сообщения от нашего клиента и, в зависимости от типа сообщения, помещает их в соответствующую очередь сообщений. Затем потребители берут сообщения из своих очередей и обрабатывают их, обычно совершая вызовы API и т. Д.
Чего я не могу понять, так это как мне вернуть соответствующий код ответа HTTP вместо того, чтобы всегда возвращать 200?
Я хотел бы возвращать коды ошибок, если обработка обнаруживает ошибку, но я не вижу, как это может быть осуществимо, поскольку служба конечной точки должна быть доступна для приема сообщений, в то время как я думаю, что единственный способ узнать, какой код возвращать, — это дождаться, пока служба, обрабатывающая сообщение, сообщит ему, все ли в порядке или нет, что займет время.
У наших клиентов нет отдельных конечных точек, на которые мы могли бы отправлять информацию.
Есть ли способ создать микросервис, который принимает только сообщения и помещает их в очереди, но при этом возвращает коды ошибок в зависимости от того, как было обработано сообщение, не будучи недоступным во время обработки?