Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak komunikować się z hamowniami Web i Worker z Node.js na Heroku?

Jak sugeruje artykuł wysokiego poziomu na temat zadań w tle i kolejkowania, Twoja hamownia internetowa będzie musiała komunikować się z hamownią roboczą za pośrednictwem mechanizmu pośredniego (często kolejki).

Aby osiągnąć to, co brzmi, jak masz nadzieję, postępuj zgodnie z następującym ogólnym podejściem:

  • Żądanie internetowe jest odbierane przez hamownię internetową
  • hamownia internetowa dodaje zadanie do kolejki
  • Dyno robotnicze otrzymuje zadanie z kolejki
  • Dyno robocze wykonuje zadanie, zapisując przyrostowy postęp do współdzielonego komponentu
  • Żądania odpytywania po stronie przeglądarki dotyczące statusu zadania z dyno
    • hamownia internetowa odpytuje współdzielony komponent o postęp pracy w tle i wysyła stan z powrotem do przeglądarki
  • Dyno robocze kończy wykonywanie zadania i oznacza je jako ukończone we współdzielonym komponencie
  • Żądania odpytywania po stronie przeglądarki dotyczące statusu zadania z dyno
    • hamownia internetowa pyta współdzielony komponent o postęp pracy w tle i wysyła stan ukończenia z powrotem do przeglądarki

Jeśli chodzi o rzeczywistą implementację, nie jestem zbyt zaznajomiony z najlepszymi bibliotekami w Node.js, ale komponenty, które spajają ten proces razem, są dostępne w Heroku jako dodatki.

Kolejka:AMQP jest dobrze obsługiwanym protokołem kolejki, a dodatek CloudAMQP może służyć jako kolejka wiadomości między Twoją hamownią internetową i roboczym.

Stan udostępniony:możesz użyć jednego z dodatków Postgres, aby udostępnić stan przetwarzanego zadania lub coś bardziej wydajnego, takiego jak Memcache lub Redis.

Podsumowując, musisz użyć pośredniego komponentu dodatkowego do komunikacji między hamowniami w Heroku. Chociaż to podejście wymaga nieco więcej inżynierii, wynikiem jest odpowiednio oddzielona i skalowalna architektura.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. redis węzła, zmienne są dzielone między klientami?

  2. Redis vs. MongoDB:porównywanie baz danych w pamięci za pomocą mechanizmu pamięci Percona

  3. Korzystanie z replikacji Redis na różnych komputerach (multi master)

  4. Łączenie z Redis działającym w kontenerze Docker z komputera hosta

  5. Udostępniać sesje z redis i paszportem na subdomenie?