Servidor separado para trabalhadores de Resque

2

Estou tentando segmentar alguns servidores para um projeto Rails e parte disso é divertir a ideia de isolar os trabalhadores do Resque em sua própria caixa. Eu já tenho o Redis quebrado, mas é comum colocar os trabalhadores do Resque em outro lugar? Eles precisam estar ligados ao próprio aplicativo?

Se isso puder ser feito, há alguma prática ou referência sobre o assunto? Se não, é melhor jogar mais memória RAM nos servidores de aplicativos que executam os trabalhadores da Resque?

Eu pretendo usar o capataz para monitorar tudo isso e criar trabalhos iniciantes.

    
por cmhobbs 13.03.2012 / 04:16

1 resposta

3

I'm trying to segment a few servers for a Rails project and part of that is entertaining the idea of isolating Resque workers to their own box. I already have Redis broken out, but is it common to put Resque workers elsewhere?

Vou tornar isso um pouco mais genérico. É comum colocar trabalhadores de processamento de trabalho em máquinas diferentes do aplicativo? Absolutamente. Isso é algo que você verá em quase todas as arquiteturas de processamento de filas de trabalhos.

Do they need to be tied to the application itself?

Não. O aplicativo pode ser gravado para ler ao vivo e passar atualizações para a fila ... e ele próprio não conseguirá lidar com as atualizações. Eles são tão supostamente feitos ... [olhar melancólico na distância] na nuvem . Não importa se está tudo em uma máquina ou se espalha por uma rede monstruosa com um bom design de separação.

If it can be done, are there any commonly referenced best practices or writeups on the subject?

Parece errado responder isso com um não ... mas eu realmente não sei de nenhum. Todos enfrentam diferentes desafios no dimensionamento. Ser capaz de escrever algo para ser escalável é apenas uma medida de experiência. Você pode tentar ler histórias de como outras pessoas escalaram aplicativos no passado e tentar aprender lições, mas não há "HOWTO de dimensionamento" abrangente.

Use baixo acoplamento e boa segmentação de processos (no sentido do fluxograma) para que eles possam ser quebrados quando possível. Não pense demais nisso.

If not, am I better off just throwing more RAM at the app servers running Resque workers?

Desde que você possa e nada mais seja a garrafa, vá em frente. A escala é uma avaliação de custo / benefício, tanto quanto qualquer outra coisa. Pense cuidadosamente, no entanto, se você chegará ao ponto de maximizar o que pode colocar na máquina e, de repente, parece muito caro ter uma plataforma que suporte mais memória. Se você não acha que vai chegar lá, não perca o sono por isso.

    
por 13.03.2012 / 04:49