Если вы думаете, что можете бросить uwsgi перед приложением, я полагаю, это довольно близко к общему доступу.Таким образом, вы можете запускать несколько экземпляров программы и получать производительность ядра от каждого.
Есть пара действительно очевидных вариантов, как именно запустить несколько экземпляров.Вы могли бы иметь балансировщик нагрузки впереди.Вы могли бы иметь процессы совместно использовать порт прослушивания.Вероятно, есть и другие возможности.
Поскольку ваш протокол выглядит как HTTP, должен быть применим любой старый HTTP-балансировщик нагрузки.Он не обязательно должен быть основан на Twisted или Python (хотя, безусловно, это может быть).
Если вы предпочитаете использовать порт для прослушивания, Twisted имеет API для передачи файловых дескрипторов между процессами (IReactorSocket
) и длязапуск новых процессов, которые наследуют дескриптор файла от родителя (IReactorProcess
).