2012-09-03 24 views
5

I starają się wdrożyć projektu Django Django, ale mam te pytania nierozwiązane:django-seler w produkcyjnym środowisku z wieloma serwerami

  • należy uruchomić jeden celeryd dla każdego serwera WWW?
  • Czy powinienem uruchamiać tylko jeden serwer RabbitMQ na innej maszynie (nie działającej tam), dostępnej na wszystkich moich serwerach? lub RabbitMQ musi być uruchamiany również na każdym z serwerów WWW?
  • Jak używać okresowych zadań, jeśli kod jest taki sam na wszystkich serwerach?

Dziękuję za odpowiedzi.

Odpowiedz

6

To naprawdę zależy od wielkości projektu, najlepiej masz RabbitMq, pracowników selera i pracowników internetowych działających na różnych maszynach.

Potrzebujesz tylko jednego RabbitMQ i ostatecznie wielu pracowników kolejki (większe kolejki potrzebują oczywiście więcej pracowników).

Nie potrzebujesz 1 pracownika do selera na webworkera, webworkerzy będą publikować zadania do brokera, a następnie robotnicy dostaną je stamtąd, w rzeczywistości webworker nie dba o ilość pracowników podłączonych do brokera jako komunikuje się tylko z brokerem.

Oczywiście jeśli zaczynają projekt ma sens, aby utrzymać wszystko na tym samym sprzęcie i utrzymać niski budżet i czekać na ruch i pieniądze płynąć :)

Chcesz mieć ten sam kod na każda działająca instancja Twojej aplikacji, bez względu na to, czy są to pracownicy selekcji/serwery internetowe, czy cokolwiek innego.

+0

Co należy zrobić, aby każdy pracownik czytał tę samą kolejkę? Spędziłem wiele godzin na poszukiwaniu przykładu, ale nic nie znalazłem. Dzięki. – user2372074

Powiązane problemy