В gRP C Я хотел бы получить дополнительную информацию о том, как сервер обрабатывает запросы.
Параллельно выполняются запросы? Или сервер порождает новый поток для каждого запроса и выполняет их параллельно? Есть ли способ изменить это поведение? Я понимаю, что при потоковой передаче клиента rp c этот порядок сообщений гарантирован.
- Если я отправлю Запрос A, за которым следует Запрос B, на тот же RP C, гарантируется ли, что A будет выполнен первым, прежде чем B начнет обработку? Или каждый из них имеет свой собственный поток и выполняется параллельно без гарантии того, что A завершится до B.
В идеале я хотел бы отправить запрос на сервер, сервер подтвердил бы получение запроса и затем запрос добавляется в очередь для последовательной обработки и возвращает ответ после его обработки. Подход, который я изучал, состоит в том, чтобы использовать внешнюю очередь задач (например, RabbitMQ), чтобы ставить в очередь работу, выполняемую службой, но я хочу знать, есть ли лучший подход.
Кроме того - на некоторой связанной ноте - есть ли у gRP C собственный механизм счетчиков повторов? У меня есть особо подверженный ошибкам RP C, который может потребоваться повторить до 3 раз (с произвольной задержкой между попытками), прежде чем он будет успешным. Это то, что может быть реализовано и с RabbitMQ.