Eu provavelmente procuraria algum tipo de infra-estrutura de mensagens para resolver isso. O servidor A pode manipular as solicitações front-end e o servidor B pode gerar os dados.
O servidor A "escuta" em uma fila de dados gerados pelo servidor B. Você também deve tentar armazenar solicitações em cache e gerar dados para não gerar novamente os mesmos dados para várias solicitações semelhantes.
O Servidor B ouve solicitações encaminhadas da exibição no servidor A, processa os dados e retorna os dados gerados por meio da fila de respostas.
Hmm. Coisas para ler ..
link < - Excelente artigo sobre RabbitMQ e python.
link < - visualização em cache do Django. Isso ajudará a diminuir sua carga imensamente (especialmente se você usar o cache do memcached em cache baseado em disco, então você também terá um cache distribuído).
link < - "Criando websites escaláveis" lhe dará uma boa visão sobre algumas outras maneiras de tornar seu aplicativo escalonável.