#asp.net #django #asynchronous #synchronization #microservices
#asp.net #django #асинхронный #синхронизация #микросервисы
Вопрос:
Я пытаюсь определить архитектуру микросервисов для моего веб-приложения Django Restfull.Это инженерное приложение в некоторых местах будет включать тяжелые механические и геометрические вычисления. Из-за медленного (на самом деле python) характера вычислений Django я сделаю основное приложение с Django (из-за его убийственно приятных функций), а также я хочу создавать микросервисы как побочные функции на C # asp.net (из-за его вычислительной мощности). Это позволит мне выполнить сложные вычисления, чтобы я мог сохранить основное приложение Django так же, как мост. Итак, мои вопросы;
- Когда основное приложение Django отправляет запрос в микросервис, что произойдет, если вычисление в микросервисе будет слишком длинным? Допустим, 10 секунд, будет ли все мое приложение заморожено в течение 10 секунд.?
- Я хочу использовать асинхронные функции на ASP.NET , будет ли это негативно влиять на синхронизацию основного приложения Django?
Ответ №1:
@Issac v — Для длительно выполняющихся процессов вы не должны делать это в потоке запроса-ответа. Вы должны использовать очередь сообщений, такую как RabbitMQ, и использовать сельдерей, чтобы делать это асинхронно. Это освободит поток запроса-ответа. Например, Обработка изображений, обработка файлов и т. Д. Вы также можете выполнять тяжелые вычисления на python. В Python есть все, что вам нужно для вычислений. Я использовал Python и OpenCV для интенсивной обработки изображений. Вам решать, как вы разрабатываете свой сервис.
Кроме того, в микросервисной архитектуре вы думали об использовании чего-то вроде дизайна pub-sub вместо Http-запроса-ответа. Взаимодействие между сервисами идеально подходит для архитектуры публикации и подписки.
И, мой 2цент, вы можете делать все с Django. В Django есть все, что вам нужно.Возможно, вам не понадобится asp.net