2016-02-15 11 views
8

Załóżmy, że tworzysz witrynę (coś podobnego do Facebooka). Piszesz kod, wdrażasz go na serwerach i zwiększasz serwery w miarę wzrostu obciążenia. Te serwery znajdują się za równoważeniem obciążenia, a żądania mogą trafiać do dowolnego serwera losowo.Jak projektujesz aplikację taką jak Firebase?

Załóżmy jednak, że tworzysz coś w rodzaju Bazy Firebase. Teraz w bazie Firebase możesz utworzyć application, a otrzymasz poddomenie <app_name>.firebase.com. Podczas gdy kod serwera jest taki sam dla wszystkich aplikacji, ale żądania dla app1.firebase.com trafią do dedykowanego zestawu serwerów, innego niż app2.firebase.com. Tak więc, ładowanie z jednej aplikacji, nie może wpływać na inne, tak jak powinno być.


Jak coś Firebase zaprojektowane, bardziej szczegółowo, w interesie ograniczenie zakresu pytanie, w jaki sposób są wnioski kierowane do konkretnego zbioru hostów dla każdej application?

+1

bardzo ciekawe pytanie, ale niestety również bardzo szeroka (a więc prawdopodobnie poza zakresem na przepełnienie stosu). Jeśli masz konkretny fragment, który Cię interesuje (np. W jaki sposób chcesz przekierować połączenia do właściwego serwera), prawdopodobnie najlepiej będzie, aby zredagować swoje pytanie, aby ograniczyć zakres do tego fragmentu. –

+0

@FrankvanPuffelen Zreduszyłem zakres pytania do żądania routingu. – Jatin

+0

@FrankvanPuffelen Zacząłem nagrodę za to pytanie! Biorąc pod uwagę Twoją pracę, być może będziesz w stanie udzielić autorytatywnej odpowiedzi tutaj. Dzięki! – Jatin

Odpowiedz

3

Zasadniczo "aplikacja" podczas jej wywoływania jest w rzeczywistości poddomena lub host wirtualny. Osiąga się to za pomocą kilku stosów technologii.

Najpierw potrzebujesz rekordu DNS dla subdomeny. Tak więc app.somedomain.com musi mieć adres IP, który można rozwiązać w Internecie i tworzony jest rekord Aliasu (lub rekord A), który wskazuje na tę poddomanę. Po zakończeniu konfigurujesz serwer WWW, zazwyczaj apache lub nginx, aby obsługiwać subdomenę za pomocą tak zwanego hosta wirtualnego. Należy skonsultować się z konkretną dokumentację dla każdej technologii, ale na serwerze apache jego najbardziej podstawowa konfiguracja będzie wyglądać mniej więcej tak:

<VirtualHost *:80> 
    ServerName app.somedomain.com 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/app.somedomain.com/ 
</VirtualHost> 
+1

Nie sądzę, że w przypadku czegoś podobnego miałoby to miejsce w przypadku ręcznej konfiguracji opartej na plikach. Firebase. – Jatin

+2

Nie używam Firebase, ale tak działa reszta internetu, – Griff

Powiązane problemy