Мне нужно написать прокси-подобную программу на Python, рабочий процесс очень похож на веб-прокси. Программа находится между клиентом и сервером, принимает запросы, отправленные клиентом на сервер, обрабатывает запрос, а затем отправляет его на исходный сервер. Конечно, используемый протокол является частным протоколом, использующим TCP.
Чтобы свести к минимуму трудозатраты, я хочу использовать Python Twisted для обработки получения запроса (часть действует как сервер) и повторной отправки (часть действует как клиент).
Чтобы добиться максимальной производительности, я хочу использовать многопроцессорность Python (многопоточность имеет ограничение GIL), чтобы разделить программу на три части (процессы). Первый процесс запускает Twisted для получения запросов, помещения запроса в очередь и немедленного возврата успеха исходному клиенту. Второй процесс берет запрос из очереди, обрабатывает запрос дальше и помещает его в другую очередь. 3-й процесс берет запрос из 2-й очереди и отправляет его на исходный сервер.
Я был новичком в Python Twisted, я знаю, что он основан на событиях, я также слышал, что лучше не смешивать Twisted с многопоточностью или многопроцессорностью. Так что я не знаю, подходит ли этот способ или есть более элегантный способ с использованием Twisted?