сервер отправляет сообщение в очередь для клиента, клиент сообщает об успешности приема сообщения и приступает выполнять обработку.
По факту выполнения клиенту надо отправить сообщение с результатом на сервер желательно через Rabbit.
Возникает вопрос, нужно ли на стороне клиента открывать внешний порт?
Вам читать про RPC, в доке подробно написано. Порты открывать не обязательно, все общение проходит через брокера в таком формате.
Спасибо, за ответ. Если вас не затруднит, можете скинуть ссылку?
Какой язык/платформа?
У нас приложения на Java
Торчать портами нет необходимости. Но возможно для вашего кейса нужно предусмотреть вероятные отключения интернета. Типа вы отдали 100 сообщений клиенту, он начал обработку и у него пропал интернет
Вопрос, при заборе сообщений и пропаже интернета, они же остаются в очереди пока по ним не пришёл коммит что они обработаны? и при повторном подключении они опять будут ждать обработки если не предусмотрен другой механизм?
пока ACK не пришел об обработке - они будут в очереди, да. Вопрос скорее - если в обработку взято и в этот момент произойдет обрыв. получается что засчет механизма heartbeat сообщение вернется как необработанное. хотя на клиенте обработка пройдёт
Спасибо, я именно это хотел уточнить
Обсуждают сегодня