Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jeden serwis pare serwerów
Major
post
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 22.07.2004

Ostrzeżenie: (0%)
-----


Witam, mam nadzieje że wybrałem odpowiedni dział smile.gif

Za jakiś czas będe musiał zrobić system korzystający z paru serwerów by ujednolicić ruch i by w wypadku awarii jednego drugi go zastąpił, lecz zbytnio nie wiem jak to rozwiązać, mam pare pomysłów ale żaden nie jest idealny:
1.
Serwer1 --- Serwer2
Rozwiązanie na pozór dobre, ale podczas dodawania rekordów do bayz na serwerze1 trza dodać też serwerze2. A jednak zalezy mi na szybkości a to może jednak spowolnić
2.
Kod
Serwer1     Serwer2
       \    /
        \  /
      Serwer DB


Takie rozwiązanie by było prawie idealne, ale co będzie jak padnie serwer z baża danych, wtedy oba serwery będa nie czynne. W takiej sytuacji można by zastosowac jednak cache html, wtedy by były wyswietlane cachce(które by obejmowaly wszystkie pliki), ale jednak nie można by przeprowadzać żadnych operacji INSERT/UPDATE/REPLACE
3.

Nie mam zdjolnosci do rysowania winksmiley.jpg

Takie rozwiązanie jest prawie idealne, wszystko jest ok, oprócz cena jaką by to kosztowało. Bo to sa dwie maszyny nie najlepsze i poteżne maszyny do obsługi baz danych i jednak będe na takim rozwiązaniu tracił szybkośc wczytywania strony

Ma ktoś pomysł jak można by to zrealizować po najniższych kosztach i bez dużej straty wydajnosci?


--------------------
Udzielasz sie w PHP Pro?
Uważasz sie za profesjonaliste?
Przeczytaj to
Go to the top of the page
+Quote Post
Ociu
post
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




IMHO. Dwa serwery mające to te same informacje. Jesli jeden nie zadziała, śmiga drugi.
Jeśli dodasz informacje do jednego, to te same info przeniesą się do drugiego i na odwrót.

pozdrawiam
Go to the top of the page
+Quote Post
Major
post
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 22.07.2004

Ostrzeżenie: (0%)
-----


Tak ale jednak to spowolni działanie serwisu podczas dodawaniu komentarzy/newsów i innych rzeczy. Bo jednak nie będzie to localhost więc będzie wolniej.


--------------------
Udzielasz sie w PHP Pro?
Uważasz sie za profesjonaliste?
Przeczytaj to
Go to the top of the page
+Quote Post
matid
post
Post #4





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

Ostrzeżenie: (0%)
-----


Ja bym sugerował po prosu raz dziennie o godzinie najmniejszego ruchu przesyłać zawartość pierwszego serwera do drugiego. W wypadku awarii jednego z nich zawsze będzie dostępna kopia sprzed < 24h.
Go to the top of the page
+Quote Post
Kinool
post
Post #5





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


przy niezawodnosci systemow BSD to malo prawdopodobne zeby cos walnelo! jesli sa dobrze skonfigurowane i dedykowane tylko pod to konkretne zastosowanie to niezawodnosc siega prawie 100% smile.gif

jesli juz chesz miec te zapasowe do baz danych to replikacja bedzie pomocna smile.gif ustawic je tak by sie np replikowaly co 2 godziny zaby nie obciazac za mocno (zalezy jeszcze co tam bedziesz trzymal, ile to objetosciowo zajmuje i strukturalnie)

Ten post edytował Kinool 20.05.2005, 00:08:21


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Cytat
przy niezawodnosci systemow BSD to malo prawdopodobne zeby cos walnelo! jesli sa dobrze skonfigurowane i dedykowane tylko pod to konkretne zastosowanie to niezawodnosc siega prawie 100% smile.gif
Serwer to nie tylko software -- sa jeszcze dyski twarde, zasilacze -- jak to padnie to bsd nic na to nie poradzi. Chyba nie bez celu instaluje sie w serwerach macierze dyskowe i redundantne zasilacze. Ale to offtopic smile.gif


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Major
post
Post #7





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 22.07.2004

Ostrzeżenie: (0%)
-----


Cytat
przy niezawodnosci systemow BSD to malo prawdopodobne zeby cos walnelo! jesli sa dobrze skonfigurowane i dedykowane tylko pod to konkretne zastosowanie to niezawodnosc siega prawie 100% smile.gif

Ale jednak co jakiś czas trza zrobić update chodzby php, zainstalować dodatkowe oprogramowanie, wtedy trza wykonac restart, wtedy by chodził drugi serwer, albo by unormować ilość osób na serwerze, by nie przeciązać jednego serwera nadmiernie

Cytat
ustawic je tak by sie np replikowaly co 2 godziny zaby nie obciazac za mocno


Pomysł dobry np. w komentarzach "Komentarz zostanie opublikowany w przeciągu jednej godziny", ale forum już co innego tam raczej wolałbym odrazu publikować

Ten post edytował Major 20.05.2005, 13:52:07


--------------------
Udzielasz sie w PHP Pro?
Uważasz sie za profesjonaliste?
Przeczytaj to
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Ale takie np. allegro wylacza swoj serwis na czas napraw/konserwacji.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
matid
post
Post #9





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

Ostrzeżenie: (0%)
-----


Cytat(Major @ 2005-05-20 14:51:21)
Cytat
ustawic je tak by sie np replikowaly co 2 godziny zaby nie obciazac za mocno


Pomysł dobry np. w komentarzach "Komentarz zostanie opublikowany w przeciągu jednej godziny", ale forum już co innego tam raczej wolałbym odrazu publikować

To nie o to chodzi. Na serwerze głównym wszystkie zmiany wykonywane są w czasie rzeczywistym, a co dwie godziny serwer replikuje wszystkie dane na drugi, więc mamy tak:

Serwer 1 - wszystko w czasie rzeczywistym
Serwer 2 - w wypadku awarii Serwera 1 mamy dane najpóźniej sprzed 2h.
Go to the top of the page
+Quote Post
Synaps
post
Post #10





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Cytat(matid @ 2005-05-20 15:25:10)
To nie o to chodzi. Na serwerze głównym wszystkie zmiany wykonywane są w czasie rzeczywistym, a co dwie godziny serwer replikuje wszystkie dane na drugi, więc mamy tak:

Serwer 1 - wszystko w czasie rzeczywistym
Serwer 2 - w wypadku awarii Serwera 1 mamy dane najpóźniej sprzed 2h.

Albo zdecydować się na logowanie wszystkich operacji typu DML i przesyłanie takich logów na backupowy serwer DB gdzie są one pobierane i wykonywane. Jeśli dobrze napiszemy interfejs który to wykonuje , wrazie awarii tracimy co najwyżej kilka op. DML.

Ten post edytował Synaps 20.05.2005, 15:07:34


--------------------
MySQL said:

You have an error in your SQL syntax near ' `sygnatura` VARCHAR, NOT NULL
Go to the top of the page
+Quote Post
Vengeance
post
Post #11





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(matid @ 2005-05-20 15:25:10)
Cytat(Major @ 2005-05-20 14:51:21)
Cytat
ustawic je tak by sie np replikowaly co 2 godziny zaby nie obciazac za mocno


Pomysł dobry np. w komentarzach "Komentarz zostanie opublikowany w przeciągu jednej godziny", ale forum już co innego tam raczej wolałbym odrazu publikować

To nie o to chodzi. Na serwerze głównym wszystkie zmiany wykonywane są w czasie rzeczywistym, a co dwie godziny serwer replikuje wszystkie dane na drugi, więc mamy tak:

Serwer 1 - wszystko w czasie rzeczywistym
Serwer 2 - w wypadku awarii Serwera 1 mamy dane najpóźniej sprzed 2h.

Pada pierwszy sewer... włącza się drugi.
Na drugim masz kopie przedawnioną o 2h.
Drugi serwer działa przez godzine, serwer 1 naprawiony.

Teraz na serwerze masz kompie przedawnioną o 1h (z czego ona była przedawniona o 2h) :]

Rozumiesz o co mi chodzi? W przypadku jakiegoś np. forum uzyskujesz 2 kompletnie niezgodne wersje serwisu :]


Proponuje zrobić tak, iż gdy coś padnie to serwer 2 udostępnia tylko zawartość statyczną, a forum, komentarze itd po prostu nie są dostępne do czasu usunięcia awarii.


--------------------
Go to the top of the page
+Quote Post
matid
post
Post #12





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

Ostrzeżenie: (0%)
-----


No zapomniałem tego dodać. Sam miałem na myśli wyłączenie możliwości dodawania danych w wypadku awarii serwera głównego.
Innym rozwiązaniem tego problemu byłoby logowanie operacji DML.
Wtedy jak padnie pierwszy serwer, to drugi ma bazę sprzed 2 godzin. W międzyczasie wszystkie operacje na bazie danych są logowane i po przywróceniu serwera głównego wysyłane na niego i wykonywane.
Go to the top of the page
+Quote Post
dvc
post
Post #13





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 29.04.2002
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


A moze cos takiego ?
Kod
serwer 1                  serwer 2
   \                            /
     \                        /
       \                    /
         \                /
            P R O X Y
            /          \
          /              \
        /                  \
      /                      \
Serwer DB1   <=>      Serwer DB2


w przypadku padu jednego z serwerow DB baza jest ciagle aktualna - po naprawie
nastepuje synchronizacja(przychodzi mi wiele pomyslow do glowy) miedzy serwerami DB [ciagla praca serwerow, brak calkowitej desynchronizacji serwerow]

mozna sie pokusic o postawienie jeszcze jednego serwera proxy przed serwerami 1 i 2

tylko nie wime do czego maja byc te serwery 1 i 2 ?

moze lepiej tak zrobic ?

Kod
   klient
     |
     |
   Proxy ( w przypadku totalnego padu wyswietli strone sorry awaria )
     |
  Serwer Aplikacji
     |
  Proxy ( dane ida na dwa serwery, w przypadku padu laduja tylko na jednym)
  |     |                  (po naprawie nastepuje synchronizacja miedzy serwerami DB)
DB1 <=> DB2  


Ten post edytował dvc 31.05.2005, 23:24:51


--------------------
.: [ DV ] :.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 16:55