Распределенный чат-сервер на основе торнадо - PullRequest
1 голос
/ 13 августа 2011

У меня есть требование построить распределенный сервер на основе Comet для большого количества клиентов (более 500K одновременно) с высокой пропускной способностью. В настоящее время я изучаю возможность использования Tornado для его высокой эффективности при обработке большого количества длинных запросов.

Меня беспокоит, сможет ли один сервер Tornado обработать такое большое количество длинных клиентов опроса. В качестве эксперимента я хотел бы расширить демонстрационную версию Tornado Chat (https://github.com/facebook/tornado/tree/master/demos/chat)) для распределенной среды. То есть иметь несколько серверов чата Tornado, работающих параллельно, каждый из которых отвечает за меняющийся набор клиентов.

Буду признателен за любые ваши идеи / мысли относительно реализации такой схемы или за любые ссылки на соответствующие ресурсы.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 декабря 2012

Первоначально я думал об этом, чтобы во внешнем интерфейсе был сервер / обратный прокси-сервер Nginx, в то время как на задней панели было несколько экземпляров Tornado, это может быть экземпляр Tornado для каждого процесса, попробуйте выполнить некоторое тестирование на вашей машине, чтобы увидеть, сколько запущенных экземпляров Tornado в разных процессах может обрабатывать машина, когда вы заметите снижение производительности, начните делать то же самое на другой машине.

Nginx будет округлять все серверы, которые вам нужны, чтобы распределить нагрузку по серверам / экземплярам с длительным опросом / Tornado.

Не совсем уверен, как rabbitmq будет полезен в этом случае.

0 голосов
/ 10 ноября 2011

В целом, чтобы сделать базовый чат распределенным по нескольким экземплярам Tornado, вам необходимо создать механизм распределенной передачи сообщений, наиболее простой реализацией будет просто использование какой-либо очереди сообщений, такой как RabbitMQ (или ее конкурент), и отправка сообщений разветвлениякогда пользователь что-то набирает, а все соединения слушают.

...