![]() |
![]() ![]() |
![]() |
![]() ![]()
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ł
![]() 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 ![]() 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 |
|
|
![]()
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 |
|
|
![]()
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 |
|
|
![]()
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.
|
|
|
![]()
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%
![]() jesli juz chesz miec te zapasowe do baz danych to replikacja bedzie pomocna ![]() Ten post edytował Kinool 20.05.2005, 00:08:21 -------------------- |
|
|
![]()
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% 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 ![]() ![]() -------------------- Nie lubię jednorożców.
|
|
|
![]()
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 |
|
|
![]()
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.
|
|
|
![]()
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. |
|
|
![]()
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 |
|
|
![]()
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. -------------------- |
|
|
![]()
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. |
|
|
![]()
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 ] :.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 16:55 |