Streszczenie
W tym artykule omawiamy kwestię sejfów z pistoletu STack-on Sentinel z powodu awarii śruby, która pozwala sejfować bez klucza lub kombinacji. Zapewniamy również osobiste doświadczenia i spostrzeżenia dotyczące awarii i możliwych rozwiązań. Dodatkowo dotykamy kosztów sejfów produkcyjnych w Chinach i ostatecznej ceny detalicznej w USA.
1. Jaki jest problem z sejfami Sentinel Gun Stack-on Sentinel?
Nieprawidłowa funkcja śruby w tych sejfach pozwala na otwarcie ich bez klucza lub kombinacji.
2. Jakie jest powiadomienie o wycofaniu tych sejfów?
Komisja ds. Bezpieczeństwa produktów konsumenckich wydała wycofanie za około 1250 sejf.
3. Jakie są cechy wycofanych sejfów?
Sejfy są czarne, mierzą 40 cali na 25 cali na 55 cali i mają trzy półki. Mogą przechowywać około dziesięciu broni palnej.
4. W jaki sposób zidentyfikowana jest liczba stylów wycofanych sejfów?
Numer stylu, FSS18-64-MB-E-S, można znaleźć na opakowaniu wysyłkowym.
5. Gdzie sprzedano te sejfy?
Sejfy zostały sprzedane w sklepach sportowych Dick’s w całym kraju od listopada 2018 r. Do grudnia 2018 r.
6. Jakie jest potencjalne zagrożenie związane z tymi sejtami?
Łatwy dostęp do broni palnej przechowywanej w sejfach stanowi zagrożenie obrażeń.
7. Czy elektroniczny zespół kombinacji można zastąpić zamkiem mechanicznym?
Tak, można wymienić elektroniczny zespół kombinacji prawdziwą blokadą mechaniczną.
8. Jak niezawodne są sejfy na stos?
Safje na stos jest ogólnie uważane za na dolnej części, ale nadal powinny być użyteczne w cenie.
9. Są sejfami na stosy wystarczające do przechowywania broni palnej?
Chociaż mogą nie być sejfami najwyższej jakości, mogą służyć swoim zamierzonym celowi wystarczająco dobrze dla niektórych osób.
10. Ile kosztuje produkcja w cenie detalicznej sejfów?
Biorąc pod uwagę zysk producenta, detalisty, wydatki na transport i wydatki produkcyjne, sejf 700 USD może kosztować tylko około 100 USD.
Podłącz wirtualne maszyny Azure Stack Hub z Microsoft Sentinel
Aby podłączyć wirtualne maszyny Azure Stack Hub z Microsoft Sentinel, musisz dodać rozszerzenie maszyny wirtualnej do istniejących maszyn wirtualnych. Umożliwi to monitorowanie maszyn wirtualnych działających zarówno na hubie Azure, jak i Azure Stack w jednym centralnym miejscu, zapewniając lepszą widoczność i zarządzanie.
Podłącz wirtualne maszyny Azure Stack Hub z Microsoft Sentinel
W zależności od konfiguracji możesz chcieć, czy nie, ten scenariusz nastąpi:
Czy stosy na Make Sentinel?
“Przywołuje się około 1250 sejfów z pistoletu do stadion.
Komisja ds. Bezpieczeństwa produktów konsumenckich donosi, że wycofanie zostało wydane w czwartek.
Nieprawidłowa funkcja śruby może spowodować otwarcie sejfu bez użycia klucza lub kombinacji, umożliwiając dostęp do wszelkich zapisanych w środku broni palnej, co stanowi zagrożenie obrażeń.
Przywołane sejfy są czarne i mierzą 40 cali na 25 cali na 55 cali. Mają trzy półki i mogą przechowywać około dziesięciu broni palnej.
Przywołany numer stylu, FSS18-64-MB-E-S, można znaleźć na opakowaniu wysyłkowym.
Produkty zostały sprzedane w Dick’S OBSŁOWIE STORES SPORTOWANY W całym kraju od listopada 2018 r. Do grudnia 2018 r. Za około 700 USD.”
Rak Fighter (Chłoniak bez hodgkinów) od 2009.
To wystarczająco źle, że niektóre z nich mogą zawierać zamek za pomocą spinacza papieru, ale teraz dowiadujemy się, że w niektórych z nich musisz po prostu obrócić uchwyt, a zamek się omija sam.
Chciałbym wiedzieć, czym jest faktyczna „nieprawidłowa”.
Rak Fighter (Chłoniak bez hodgkinów) od 2009.
Czy możesz wymienić ten zespół kombinacji elektronicznej CrackerJacks prawdziwym zamkiem mechanicznym?
Blokada tego modelu wydaje się być zbędnym swidbolt Omega. Więc tak, możesz umieścić kolejny standardowy zamek na sejfie.
Rak Fighter (Chłoniak bez hodgkinów) od 2009.
Pomimo moich najlepszych wysiłków, mój brutder kupił sobie elektroniczny sejf z pistoletu. (Prawdopodobnie nie jedna z lepszych).
Po pięciu latach dostanie się tam, gdzie otworzy blokadę tylko wtedy, gdy bateria 9-woltowa jest zupełnie nowa. Ostrzegałem go, żeby był serwisowany.
Brak klucza bezpieczeństwa.
Mogły one zostać wyprodukowane specjalnie do standardów kutasa.
Podczas gdy sejfy są dolnym końcem, za siedemset dolarów powinien być użyteczny.
Mam kilka blachy na szafkach, które dostałem jako miejsca odporne na dzieci .22 i takie. Można je otworzyć barem, ale wymagałoby to sporo wysiłku i są wystarczająco dobrzy do zamierzonego użycia.
Ciężki sejf powinien mieć niezawodny zamek, być odporny na temperaturę i bardzo trudny do otwarcia, i wystarczająco ciężki, aby odprzeć przeniesieniu bez pokazywania go lub nieobecności (niemożliwe do wypożyczalni).
Nie ma usprawiedliwienia dla niezbędnego sejfu, nawet jeśli jest to dolny koniec.
Nawet nie wiedziałem, że stosuje się nawet rzeczywiste sejfy. Zawsze kojarzę nazwę z niedrogymi szafkami z blachy i skrzynkami narzędziowymi.
Nie ma usprawiedliwienia dla niezbędnego sejfu, nawet jeśli jest to dolny koniec
Łatwiej jest zrozumieć wymówkę, gdy uruchamiasz matematykę.
W Chinach jest spodnie pełne maszyn. Kupują stal, farbę, dywan, drewno i sprawiają, że wszystkie potrzebne części i elementy. Złożą to w produkt końcowy, przenoszą go do oceanu i wysyłają tutaj do USA.
Będąc w Stanach Zjednoczonych w całym kraju, umieszczony w sklepie, oznaczony i sprzedawany za 700 USD.
Jak myślisz, co bezpieczne faktycznie kosztują uwzględnienie zysku detalicznego, koszty transportu, zysk producenta i wydatki produkcyjne? Więc kiedy patrzysz na to, że 700 $ chińskiego sejf w sklepie, w rzeczywistości patrzysz na sejf o wartości 100 USD.
Ich najnowszy produkt:
„Naziści weszli do tej wojny pod dość dziecinnym złudzeniem, że zamierzają zbombardować wszystkich i nikt ich nie zamierza zbombardować. W Rotterdamie, Londynie, Warszaw. Spili wiatr, a teraz zamierzają zbierać wir.”
-Bomber Harris
Pierwotnie opublikowane przez jakiś strzał:
Mogły one zostać wyprodukowane specjalnie do standardów kutasa.
Każdy koktajl może być koktajlem z krewetek, jeśli włożycie na niego umysł, a jeśli nosisz dużo luźnych krewetek w kieszeni.
הרחפת שלי מלאה בצלופחים
Pierwotnie opublikowane przez A1ABDJ:
Nie ma usprawiedliwienia dla niezbędnego sejfu, nawet jeśli jest to dolny koniec
Łatwiej jest zrozumieć wymówkę, gdy uruchamiasz matematykę.
W Chinach jest spodnie pełne maszyn. Kupują stal, farbę, dywan, drewno i sprawiają, że wszystkie potrzebne części i elementy. Złożą to w produkt końcowy, przenoszą go do oceanu i wysyłają tutaj do USA.
Będąc w Stanach Zjednoczonych w całym kraju, umieszczony w sklepie, oznaczony i sprzedawany za 700 USD.
Jak myślisz, co bezpieczne faktycznie kosztują uwzględnienie zysku detalicznego, koszty transportu, zysk producenta i wydatki produkcyjne? Więc kiedy patrzysz na to, że 700 $ chińskiego sejf w sklepie, w rzeczywistości patrzysz na sejf o wartości 100 USD.
I dodać zniewagę do obrażeń, a “bezpieczna” To’S prosty do złamania.
Rak Fighter (Chłoniak bez hodgkinów) od 2009.
Proszę czekać. Twoja prośba jest przetwarzana. |
Podłącz wirtualne maszyny Azure Stack Hub z Microsoft Sentinel
Dzięki Microsoft Sentinel możesz monitorować swoje maszyny wirtualne działające na Azure i Azure Stack Hub w jednym miejscu. Aby na pokładzie swoje maszyny Azure Stack do Microsoft Sentinel, najpierw musisz dodać rozszerzenie maszyny wirtualnej do istniejących maszyn wirtualnych Azure Stack.
Po podłączeniu maszyn do piasty Azure Stack wybierz spośród galerii pulpitów nawigacyjnych, które powierzchowują wgląd w oparciu o dane. Te pulpity nawigacyjne można łatwo dostosować do twoich potrzeb.
Dodaj rozszerzenie maszyny wirtualnej
Dodaj Azure Monitor, Aktualizacja i zarządzanie konfiguracją Rozszerzenie maszyny wirtualnej do maszyn wirtualnych działających na koncie Azure Stack.
- W nowej zakładce przeglądarki zaloguj się do portalu Azure Stack Hub.
- Idź do Wirtualne maszyny strona, wybierz maszynę wirtualną, którą chcesz chronić za pomocą Microsoft Sentinel. Aby uzyskać informacje na temat tworzenia maszyny wirtualnej na Azure Stack Hub, zobacz Utwórz maszynę wirtualną Windows Server z portalem Azure Stack Hub lub utwórz maszynę VM serwera Linux za pomocą portalu Azure Stack Hub.
- Wybierać Rozszerzenia. Wyświetlana jest lista rozszerzeń maszyny wirtualnej zainstalowanej na tej maszynie wirtualnej.
- Wybierz Dodać patka. Nowy zasób Ostrze menu otwiera się i pokazuje listę dostępnych rozszerzeń maszyn wirtualnych.
- Wybierz Azure Monitor, Aktualizacja i zarządzanie konfiguracją rozszerzenie i wybierz Tworzyć. Zainstaluj rozszerzenie Otwiera się okno konfiguracji.
Uwaga, jeśli nie widzisz Azure Monitor, Aktualizacja i zarządzanie konfiguracją Rozszerzenie wymienione na rynku, skontaktuj się z operatorem Hub Azure Stack, aby go udostępnić.
Aby uzyskać więcej informacji na temat instalacji i konfigurowania agenta dla systemu Windows, zobacz Connect Windows Computers.
Aby uzyskać rozwiązywanie problemów z Linux problemów agentów, zobacz rozwiązywanie problemów Azure Log Analytics Agent Linux.
W portalu Microsoft Sentinel na platformie Azure, pod Wirtualne maszyny, Masz przegląd wszystkich maszyn wirtualnych i komputerów wraz z ich statusem.
Oczyść zasoby
Gdy nie jest to już potrzebne, możesz usunąć rozszerzenie z maszyny wirtualnej za pomocą portalu Azure Stack Hub.
Aby usunąć rozszerzenie:
- Otworzyć Portal koncentratora Azure Stack.
- Iść do Wirtualne maszyny Strona, wybierz maszynę wirtualną, z której chcesz usunąć rozszerzenie.
- Wybierać Rozszerzenia, Wybierz rozszerzenie Microsoft.Enterprisecloud.Monitorowanie.
- Wybierać Odinstalowanie, i potwierdź swój wybór.
Następne kroki
Aby dowiedzieć się więcej o Microsoft Sentinel, zobacz następujące artykuły:
- Dowiedz się, jak uzyskać widoczność w danych i potencjalnych zagrożeniach.
- Zacznij wykrywać zagrożenia za pomocą Microsoft Sentinel.
- Dane dotyczące strumieniowe z urządzeń typowych formatów zdarzeń do Microsoft Sentinel.
Zamknięte
Przygotuj się z pomocą i sprzętu, aby przenieść to z ziemi do transportu! Zobacz YouTube, aby uzyskać pomocne filmy na temat usuwania bezpiecznych drzwi, aby złagodzić ruch. Odbiór jest na poziomie gruntu, bez dokołowicia. Mamy palety podnośnik. Nie mamy widelec.
Dla tego modelu nie mamy plików PDF. Zobacz zdjęcia etykiety i informacje o wyświetlaniu.
Informacje o ładowaniu: Przygotuj się z pomocą i sprzętu, aby przenieść to z ziemi do transportu! Zobacz YouTube, aby uzyskać pomocne filmy na temat usuwania bezpiecznych drzwi, aby złagodzić ruch. Odbiór jest na poziomie gruntu, bez dokołowicia. Mamy palety podnośnik. Nie mamy widelec.
Więcej informacji o ładowaniu (od stosu.com/strony/FAQ):
P: Ile waży drzwi?
Odp.: Około 1/3 całkowitej wagi sejfu.
P: Czy drzwi można usunąć?
Odp.: Tak. Otwórz drzwi, usuń czapki zawiasowe. Podnieś drzwi ostrożnie – będziesz potrzebować windy drużynowej, drzwi są bardzo ciężkie i nie można ich wymienić.
Skontaktuj się z Markiem pod numerem (612 )298-8901 z jakimkolwiek pytaniami lub w celu uzyskania dalszych informacji. Do nas można również skontaktować e -mailem na [email protected] . Jeśli nie możesz osiągnąć znaku z pytaniem, zadzwoń do Kim pod numer 763-218-6591.
V-man nie będzie wysyłał żadnej dużej sejfów. Przenośne skrzynie, mniejsze sejfy i większość innych przedmiotów można wysłać. Skontaktuj się z nami, aby dokonać ustaleń.
Należy pamiętać, że ładowanie jest na poziomie gruntu. Jeśli kupujesz duży przedmiot, przynieś niezbędną siłę roboczą, sprzęt i pojazd potrzebny do załadowania przedmiotu. Pomoc z ładowaniem nie będzie dostępna. Mamy palety podnośnik, ale bez widelec.
Wszyscy sprzedają bez rezerw dla najwyższych oferentów! Skorzystaj z możliwości spotkania inspekcji lub zadzwoń/e -mail z pytaniami! Zdjęcia i opisy nie powinny być używane zamiast inspekcji, a dzień odbioru nie jest dniem inspekcji. Wszystko jest sprzedawane, tak jak jest tam. T nie będzie żadnych korekt ani odmowy sprzedanych przedmiotów. Dzięki za szukanie!!
Kontrola:
Pt, 07 października 2016
10:00 – 14:00
Zamknięcie aukcji:
Sun, 09 października 2016
Usuwanie:
Wt, 11 października 2016
09:30 – 15:30
Przyrosty licytacji:
Zakres ofert | Minimalny przyrost | ||
---|---|---|---|
0 USD.01 | – | 75 USD.00 | 1 USD.00 |
75 USD.01 | – | 150 USD.00 | 5 USD.00 |
150 USD.01 | – | 250 USD.00 | 10 USD.00 |
250 USD.01 | – | 500 $.00 | 25 USD.00 |
500 $.01 | – | 1000 $.00 | 50 USD.00 |
1000 $.01 | – | 5000 $.00 | 75 USD.00 |
5000 $.01 | – | 50 000 $.00 | 100 USD.00 |
50 000 $.01 | – | 75 000 $.00 | 250 USD.00 |
75 000 $.01 | – | 100 000 $.00 | 500 $.00 |
100 000 $.01 | – | 2 500 000 $.00 | 1000 $.00 |
Premium kupującego zniżki | Premium regularnego kupującego | Czapka |
---|---|---|
10.00% | 13.00% | 3250 USD.00 |
Ta aukcja jest zawarta i zarządzana przez: V-Man Auctions
Menedżer: Mark Cooper
Gotówka, kredyt, kasjer’S/Bank Check
Ta aukcja jest zawarta i zarządzana przez aukcje V-Man. Umieszczając ofertę na tę aukcję, zgadzasz się na określone warunki aukcji wymienione poniżej. Na aukcje zakontraktowane i zarządzane przez niezależnego partnera, K-Bid Online, Inc. działa wyłącznie jako miejsce i nie będzie zaangażowany w żadne spory lub problemy dotyczące tej aukcji. Wszystko jest sprzedawane “jak jest, gdzie jest” bez gwarancji lub gwarancji. Jesteś odpowiedzialny za kontrolę przedmiotów przed zakupem. Na tej aukcji istnieje 13% premii nabywców (13% BP). Wszystkie płatności karty niekredytowe/debetowe dokonane w pełnej (kwoty fakturowanej) otrzymają 3% redukcję premii nabywców (10% BP). Obowiązujący podatek od sprzedaży w Minnesocie zostanie pobrany. Pod koniec aukcji aktywne przedmioty pozostaną otwarte, dopóki nie otrzymają żadnych ofert na trzy minuty. Ważna uwaga: Jeśli wysoki oferent przedmiotu nie potwierdza zakupu, K-BID Systems zastrzega sobie prawo do ustalenia, w jaki sposób i komu będzie się odsprzedał. Jeśli ustalimy, że zwycięska oferta nie była oferentem w dobrej wierze, przedmiot nie przejdzie automatycznie do następnej drugiej najwyższej oferty.
Ta aukcja jest zawarta i zarządzana przez niezależnego partnera. Umieszczając ofertę na tę aukcję, zgadzasz się na określone warunki aukcji wymienione na tej stronie oprócz warunków i umów użytkownika K-BID.
K-Bid Online, Inc. (K-BID) jest odpowiedzialny za utrzymanie K-BID.Witryna COM. K-BID.COM służy jako miejsce używane przez niezależne firmy aukcyjne (podmioty stowarzyszone) do prezentacji swoich aukcji online od oferentów.
K-BID’S rola na aukcjach wymienionych na K-BID.COM ogranicza się do zapewnienia miejsca aukcji partnerskich. Podmioty stowarzyszone nie są pracownikami, agentami, przedstawicielami ani partnerami K-Bid Online, Inc,. K-BID’Wie.
Układając ofertę na K-BID.com, licytujący weryfikują, że mają co najmniej 18 lat i potwierdzają, że rozumieją i będą przestrzegać obu K-BID.Warunki strony internetowej com i terminy aukcji. Licytujący nie mogą udostępniać żadnego hasła ani informacji o koncie. Oferents są odpowiedzialni za oferty umieszczone na ich koncie.
Daty kontroli/czasy są dostępne na każdej aukcji. Oferci są bardzo zachęcani do sprawdzania przed złożeniem ofert. Dzień usuwania nie jest dniem inspekcji. Kiedy aukcja się kończy, a zwycięska faktura pojawia się na oferecie’S Dashboard, oferent jest zobowiązany do uhonorowania swojej oferty (-ów).
Każdy przedmiot aukcyjny jest sprzedawany “jak jest, gdzie jest” bez gwarancji lub gwarancji. Jesteś odpowiedzialny za kontrolę przedmiotów przed zakupem.
Licytujący są odpowiedzialni za poznanie i przestrzeganie warunków aukcji. Nieprzestrzeganie warunków usuwania może spowodować wyłączenie uprawnień do licytacji. Po złożeniu oferty nie można go wycofać.
Sprzedawcom i ich agentom zabrania się licytowania własnych aktywów.
Pozycje z rezerwą nie zostaną sprzedane, chyba że cena rezerwy zostanie osiągnięta.
Na zakończenie aukcji aktywne przedmioty pozostaną otwarte, dopóki nie otrzymają żadnych ofert na trzy minuty.
Obowiązny podatek od sprzedaży zostanie pobrany przez partner zarządzający aukcją.
W przypadku rozwiązania praw do licytacji z powodu faktury bez show, oferents mogą zostać przywróceni według uznania K-BID dopiero po opłaty karnej w wysokości 20% nieopłaconej faktury i opłaty za przywrócenie 25 USD.00 zostało wypłacone K-BID i zeskanowaną kopię prawa jazdy wysłanej do nas. Fakturowane przedmioty nie zostaną przyznane. Płatność jest karna i przeznaczona do powstrzymywania braków. Duplikaty rachunków oferentów zostaną dezaktywowane, gdy będą one ustalone, aby istnieć. Jeśli to możliwe i według naszego uznania, K-BID zastrzega sobie prawo do usunięcia wszelkiej oferty, którą naszym zdaniem został złożony przez podejrzanego licytującego. Każda rejestracja, która pojawia się w naszym systemie wykrywania oszustw, może zostać zawieszona i usunięta oferty do czasu zweryfikowania użytkownika. K-BID Online, Inc zastrzega sobie prawo do odrzucenia nikogo przed licytowaniem na swojej stronie internetowej. Przypadki oczywistych licytacji bez zamiaru wykupu zostaną skierowane do odpowiednich organów prawnych.
Podmioty stowarzyszone mogą obniżyć rezerwę działki w dowolnym momencie lub po zakończeniu aukcji. Jeżeli rezerwę zostanie obniżona podczas trwania aukcji, obowiązująca wiadomość rezerwowa pojawi się poniżej następnej wymaganej informacji o ofercie (rezerwę nie spełniono lub nie została spełniona); Aktywa będzie sprzedawał wysokiej oferentowi, jeśli obniżona kwota rezerw. Jeśli rezerwa zostanie obniżona po zamknięciu aukcji, najwyższy oferent na aukcji Close otrzyma zwycięską fakturę.
Gdy aukcja rozpocznie proces zamykania, nie zostaną wysyłane powiadomienia.
Po złożeniu oferty nie można go wycofać.
Zamknięte
Skontaktuj się z Markiem pod numerem (612 )298-8901 z jakimkolwiek pytaniami lub w celu uzyskania dalszych informacji. Do nas można również skontaktować e -mailem na [email protected] . Jeśli nie możesz osiągnąć znaku z pytaniem, zadzwoń do Kim pod numer 763-218-6591.
V-man nie będzie wysyłał żadnej dużej sejfów. Przenośne skrzynie, mniejsze sejfy i większość innych przedmiotów można wysłać. Skontaktuj się z nami, aby dokonać ustaleń.
Należy pamiętać, że ładowanie jest na poziomie gruntu. Jeśli kupujesz duży przedmiot, przynieś niezbędną siłę roboczą, sprzęt i pojazd potrzebny do załadowania przedmiotu. Pomoc z ładowaniem nie będzie dostępna. Mamy palety podnośnik, ale bez widelec.
Wszyscy sprzedają bez rezerw dla najwyższych oferentów! Skorzystaj z możliwości spotkania inspekcji lub zadzwoń/e -mail z pytaniami! Zdjęcia i opisy nie powinny być używane zamiast inspekcji, a dzień odbioru nie jest dniem inspekcji. Wszystko jest sprzedawane, tak jak jest tam. T nie będzie żadnych korekt ani odmowy sprzedanych przedmiotów. Dzięki za szukanie!!
Kontrola:
Pt, 07 października 2016
10:00 – 14:00
Zamknięcie aukcji:
Sun, 09 października 2016
Usuwanie:
Wt, 11 października 2016
09:30 – 15:30
Przyrosty licytacji:
Zakres ofert | Minimalny przyrost | ||
---|---|---|---|
0 USD.01 | – | 75 USD.00 | 1 USD.00 |
75 USD.01 | – | 150 USD.00 | 5 USD.00 |
150 USD.01 | – | 250 USD.00 | 10 USD.00 |
250 USD.01 | – | 500 $.00 | 25 USD.00 |
500 $.01 | – | 1000 $.00 | 50 USD.00 |
1000 $.01 | – | 5000 $.00 | 75 USD.00 |
5000 $.01 | – | 50 000 $.00 | 100 USD.00 |
50 000 $.01 | – | 75 000 $.00 | 250 USD.00 |
75 000 $.01 | – | 100 000 $.00 | 500 $.00 |
100 000 $.01 | – | 2 500 000 $.00 | 1000 $.00 |
Premium kupującego zniżki | Premium regularnego kupującego | Czapka |
---|---|---|
10.00% | 13.00% | 3250 USD.00 |
Ta aukcja jest zawarta i zarządzana przez: V-Man Auctions
Menedżer: Mark Cooper
Gotówka, kredyt, kasjer’S/Bank Check
Ta aukcja jest zawarta i zarządzana przez aukcje V-Man. Umieszczając ofertę na tę aukcję, zgadzasz się na określone warunki aukcji wymienione poniżej. Na aukcje zakontraktowane i zarządzane przez niezależnego partnera, K-Bid Online, Inc. działa wyłącznie jako miejsce i nie będzie zaangażowany w żadne spory lub problemy dotyczące tej aukcji. Wszystko jest sprzedawane “jak jest, gdzie jest” bez gwarancji lub gwarancji. Jesteś odpowiedzialny za kontrolę przedmiotów przed zakupem. Na tej aukcji istnieje 13% premii nabywców (13% BP). Wszystkie płatności karty niekredytowe/debetowe dokonane w pełnej (kwoty fakturowanej) otrzymają 3% redukcję premii nabywców (10% BP). Obowiązujący podatek od sprzedaży w Minnesocie zostanie pobrany. Pod koniec aukcji aktywne przedmioty pozostaną otwarte, dopóki nie otrzymają żadnych ofert na trzy minuty. Ważna uwaga: Jeśli wysoki oferent przedmiotu nie potwierdza zakupu, K-BID Systems zastrzega sobie prawo do ustalenia, w jaki sposób i komu będzie się odsprzedał. Jeśli ustalimy, że zwycięska oferta nie była oferentem w dobrej wierze, przedmiot nie przejdzie automatycznie do następnej drugiej najwyższej oferty.
Ta aukcja jest zawarta i zarządzana przez niezależnego partnera. Umieszczając ofertę na tę aukcję, zgadzasz się na określone warunki aukcji wymienione na tej stronie oprócz warunków i umów użytkownika K-BID.
K-Bid Online, Inc. (K-BID) jest odpowiedzialny za utrzymanie K-BID.Witryna COM. K-BID.COM służy jako miejsce używane przez niezależne firmy aukcyjne (podmioty stowarzyszone) do prezentacji swoich aukcji online od oferentów.
K-BID’S rola na aukcjach wymienionych na K-BID.COM ogranicza się do zapewnienia miejsca aukcji partnerskich. Podmioty stowarzyszone nie są pracownikami, agentami, przedstawicielami ani partnerami K-Bid Online, Inc,. K-BID’Wie.
Układając ofertę na K-BID.com, licytujący weryfikują, że mają co najmniej 18 lat i potwierdzają, że rozumieją i będą przestrzegać obu K-BID.Warunki strony internetowej com i terminy aukcji. Licytujący nie mogą udostępniać żadnego hasła ani informacji o koncie. Oferents są odpowiedzialni za oferty umieszczone na ich koncie.
Daty kontroli/czasy są dostępne na każdej aukcji. Oferci są bardzo zachęcani do sprawdzania przed złożeniem ofert. Dzień usuwania nie jest dniem inspekcji. Kiedy aukcja się kończy, a zwycięska faktura pojawia się na oferecie’S Dashboard, oferent jest zobowiązany do uhonorowania swojej oferty (-ów).
Każdy przedmiot aukcyjny jest sprzedawany “jak jest, gdzie jest” bez gwarancji lub gwarancji. Jesteś odpowiedzialny za kontrolę przedmiotów przed zakupem.
Licytujący są odpowiedzialni za poznanie i przestrzeganie warunków aukcji. Nieprzestrzeganie warunków usuwania może spowodować wyłączenie uprawnień do licytacji. Po złożeniu oferty nie można go wycofać.
Sprzedawcom i ich agentom zabrania się licytowania własnych aktywów.
Pozycje z rezerwą nie zostaną sprzedane, chyba że cena rezerwy zostanie osiągnięta.
Na zakończenie aukcji aktywne przedmioty pozostaną otwarte, dopóki nie otrzymają żadnych ofert na trzy minuty.
Obowiązny podatek od sprzedaży zostanie pobrany przez partner zarządzający aukcją.
W przypadku rozwiązania praw do licytacji z powodu faktury bez show, oferents mogą zostać przywróceni według uznania K-BID dopiero po opłaty karnej w wysokości 20% nieopłaconej faktury i opłaty za przywrócenie 25 USD.00 zostało wypłacone K-BID i zeskanowaną kopię prawa jazdy wysłanej do nas. Fakturowane przedmioty nie zostaną przyznane. Płatność jest karna i przeznaczona do powstrzymywania braków. Duplikaty rachunków oferentów zostaną dezaktywowane, gdy będą one ustalone, aby istnieć. Jeśli to możliwe i według naszego uznania, K-BID zastrzega sobie prawo do usunięcia wszelkiej oferty, którą naszym zdaniem został złożony przez podejrzanego licytującego. Każda rejestracja, która pojawia się w naszym systemie wykrywania oszustw, może zostać zawieszona i usunięta oferty do czasu zweryfikowania użytkownika. K-BID Online, Inc zastrzega sobie prawo do odrzucenia nikogo przed licytowaniem na swojej stronie internetowej. Przypadki oczywistych licytacji bez zamiaru wykupu zostaną skierowane do odpowiednich organów prawnych.
Podmioty stowarzyszone mogą obniżyć rezerwę działki w dowolnym momencie lub po zakończeniu aukcji. Jeżeli rezerwę zostanie obniżona podczas trwania aukcji, obowiązująca wiadomość rezerwowa pojawi się poniżej następnej wymaganej informacji o ofercie (rezerwę nie spełniono lub nie została spełniona); Aktywa będzie sprzedawał wysokiej oferentowi, jeśli obniżona kwota rezerw. Jeśli rezerwa zostanie obniżona po zamknięciu aukcji, najwyższy oferent na aukcji Close otrzyma zwycięską fakturę.
Gdy aukcja rozpocznie proces zamykania, nie zostaną wysyłane powiadomienia.
Po złożeniu oferty nie można go wycofać.
Wysoka dostępność z Redis Sentinel
Sam Sentinel został zaprojektowany do uruchamiania w konfiguracji, w której łączy się wiele procesów Sentinel. Zaletą współpracy wielu procesów Sentinel są następujące:
- Wykrywanie awarii jest wykonywane, gdy wielu wartowników zgadza się co do faktu, że dany mistrz nie jest już dostępny. To obniża prawdopodobieństwo fałszywych pozytywów.
- Sentinel działa, nawet jeśli nie wszystkie procesy Sentinel działają, dzięki czemu system jest odporny na awarie. W końcu nie ma zabawy w systemie przełączania awaryjnego, który sam w sobie jest jednym punktem awarii.
Suma wartowników, instancji Redis (Masters i Replicas) i klientów łączących się z Sentinel i Redis, są również większym systemem rozproszonym o określonych właściwościach. W tym dokumencie koncepcje zostaną wprowadzone stopniowo od podstawowych potrzebnych informacji, aby zrozumieć podstawowe właściwości Sentinel, po bardziej złożone informacje (które są opcjonalne), aby zrozumieć, jak dokładnie działa Sentinel.
Strażnik Szybki start
Uzyskanie Sentinel
Obecna wersja Sentinel nazywa się Sentinel 2. Jest to przepisanie początkowej implementacji Sentinel przy użyciu silniejszych i prostszych algorytmów (które są wyjaśnione w tej dokumentacji).
Stabilne wydanie Redis Sentinel jest wysyłane od Redis 2.8.
Nowe osiągnięcia są wykonywane w nietrwały Oddział, a nowe funkcje czasami są z powrotem przeniesione do najnowszej stabilnej gałęzi, gdy tylko są uważane za stabilne.
Redis Sentinel wersja 1, wysłana z Redis 2.6, jest przestarzałe i nie należy go używać.
Uruchomienie Sentinel
Jeśli używasz wykonywalny Redis-Sentinel (lub jeśli masz symboliczny link z tą nazwą do wykonywania wykonywania Redis-Server), możesz uruchomić Sentinel z następującym wierszem poleceń:
Redis-Sentinel/Path/to/Sentinel.conf
W przeciwnym razie możesz użyć bezpośrednio wykonywalny Redis-Server Uruchamianie go w trybie Sentinel:
redis-server/ścieżka/do/sentinel.Conf - -Sentinel
Oba sposoby działają tak samo.
Jednakże jest obowiązkowy Aby użyć pliku konfiguracyjnego podczas uruchamiania Sentinel, ponieważ ten plik będzie używany przez system w celu zapisania bieżącego stanu, który zostanie ponownie załadowany w przypadku ponownego uruchomienia. Sentinel po prostu odmówi uruchomienia, jeśli nie zostanie podany żaden plik konfiguracyjny lub jeśli ścieżka pliku konfiguracyjnego nie jest zapisana.
Domyślnie sentinels Słuchanie połączeń z portem TCP 26379, Więc dla Sentinels do pracy, port 26379 twoich serwerów Musi być otwarty Aby odbierać połączenia z adresów IP innych instancji Sentinel. W przeciwnym razie Sentinels nie mogą rozmawiać i nie mogą zgodzić się na to, co robić, więc awaryjne nigdy nie zostanie wykonane.
Fundamentalne rzeczy, które należy wiedzieć o Sentinel przed wdrożeniem
- Potrzebujesz co najmniej trzech instancji Sentinel, aby uzyskać solidne wdrożenie.
- Trzy instancje Sentinel powinny być umieszczone w komputerach lub maszynach wirtualnych, które, jak się uważa, zawodzą w niezależny sposób. Na przykład różne serwery fizyczne lub maszyny wirtualne wykonywane w różnych strefach dostępności.
- System rozproszony Sentinel + Redis nie gwarantuje, że uznane zapisy są zachowywane podczas awarii, ponieważ Redis używa replikacji asynchronicznej. Istnieją jednak sposoby na rozmieszczenie Sentinel, które sprawiają, że okno do utraty zapisów ograniczone do określonych momentów, podczas gdy istnieją inne mniej bezpieczne sposoby na jego rozmieszczenie.
- Potrzebujesz wsparcia Sentinel u swoich klientów. Popularne biblioteki klientów mają wsparcie Sentinel, ale nie wszystkie.
- Nie ma konfiguracji HA, która jest bezpieczna, jeśli nie testujesz od czasu do czasu w środowiskach programistycznych, a nawet lepiej, jeśli możesz, w środowiskach produkcyjnych, jeśli działają. Możesz mieć błędną konfigurację, która stanie się widoczna tylko wtedy, gdy będzie za późno (o 3 nad ranem, kiedy twój mistrz przestanie działać).
- Sentinel, Docker lub inne formy tłumaczenia adresów sieciowych lub mapowania portów powinny być mieszane z ostrożnością: Docker wykonuje remapowanie portów, łamanie Sentinel Auto Odkrywanie innych procesów Sentinel i listy replików dla mistrza. Sprawdź sekcję dotyczącą Sentinel i Docker W dalszej części tego dokumentu, aby uzyskać więcej informacji.
Konfigurowanie Sentinel
Rozkład źródłowy Redis zawiera plik o nazwie Sentinel.Conf, który jest samokontentowanym przykładowym plikiem konfiguracyjnym, którego można użyć do skonfigurowania Sentinel, jednak typowy minimalny plik konfiguracyjny wygląda jak następujące:
Sentinel Monitor MyMaster 127.0.0.1 6379 2 Sentinel Down-After-MilliiseConds MyMaster 60000 Sentinel Timeout MyMaster 180000 Sentinel równoległe synchronizacja MyMaster 1 Sentinel Monitor Resque 192.168.1.3 6380 4 Sentinel w dół-milisekund RESQUE 10000 STERINEL Timeout Timeout Resque 180000 Sentinel równolegle Resque 5
Musisz tylko określić mistrzów do monitorowania, podając każdemu oddzielonemu mistrzowi (który może mieć dowolną liczbę replik). Nie ma potrzeby określania replików, które są automatycznie odkrywane. Sentinel automatycznie aktualizuje konfigurację o dodatkowe informacje na temat replik (w celu zachowania informacji w przypadku ponownego uruchomienia). Konfiguracja jest również przepisywana za każdym razem, gdy replika jest promowana na mistrz.
Przykładowa konfiguracja powyżej w zasadzie monitoruje dwa zestawy instancji Redis, z których każdy składa się z głównego i nieokreślonej liczby replik. Jeden zestaw instancji nazywa się MyMaster, a drugi Resque .
Znaczenie argumentów stwierdzeń Monitor Sentinel jest następujące:
Sentinel Monitor
Ze względu na przejrzystość sprawdźmy wiersz według linii, co oznaczają opcje konfiguracji:
Pierwsza linia służy do informowania Redisa, aby monitorował mistrza o nazwie mój mistrz, to jest pod adresem 127.0.0.1 i port 6379, z kworum 2. Wszystko jest dość oczywiste, ale kworum argument:
- kworum to liczba wartowników, którzy muszą zgodzić się na fakt, że mistrz nie jest osiągalny, aby naprawdę oznaczyć mistrza jako niepowodzenie, i ostatecznie rozpocząć procedurę przełączania awaryjnego, jeśli to możliwe.
- Jednakże kworum służy tylko do wykrycia awarii. Aby faktycznie wykonać przełączanie awaryjne, jeden z wartowników musi zostać wybrany liderem na awary. Dzieje się tak tylko wraz z głosowaniem Większość procesów Sentinel.
Więc na przykład, jeśli masz 5 procesów Sentinel i kworum dla danego głównego ustawiania wartości 2, tak się dzieje:
- Jeśli dwóch wartowników zgadza się jednocześnie na temat nieosiągalnego mistrza, jeden z dwóch spróbuje rozpocząć awaryjne.
- Jeśli w sumie jest to co najmniej trzy wartowniki, przełączanie awaryjne zostanie autoryzowane i faktycznie się uruchomi.
W praktyce oznacza to podczas niepowodzeń Sentinel nigdy nie rozpoczyna przełączania awaryjnego, jeśli większość procesów Sentinel nie jest w stanie porozmawiać (AKA NO NEOVOVER w partycji mniejszościowej).
Inne opcje wartownika
Pozostałe opcje są prawie zawsze w formie:
posterunek
I są używane do następujących celów:
- w dół-milisekund to czas w milisekundach instancja nie powinna być osiągalna (albo nie odpowiada na nasze ping, albo odpowiada z błędem), że wartownik zaczyna myśleć, że jest w dół.
- Synksy równoległe ustawia liczbę replików, które można ponownie skonfigurować, aby używać nowego mistrza po awarii awaryjnej. Im niższa liczba, tym więcej czasu zajmie proces przełączania awaryjnego, jednak jeśli repliki są skonfigurowane do obsługi starych danych, możesz nie chcieć, aby wszystkie repliki ponownie zsynchronizowały się z mistrzem w tym samym czasie. Chociaż proces replikacji nie jest w większości nie blokujący repliki, jest moment, w którym zatrzymuje. Możesz upewnić się, że tylko jedna replika na raz nie jest możliwa, ustawiając tę opcję na wartość 1.
Dodatkowe opcje zostały opisane w pozostałej części tego dokumentu i udokumentowane w przykładzie Sentinel.Plik CONF wysłany z dystrybucją Redis.
Parametry konfiguracyjne można modyfikować w czasie wykonywania:
- Parametry konfiguracyjne specyficzne dla głównego są modyfikowane za pomocą zestawu Sentinel .
- Globalne parametry konfiguracyjne są modyfikowane za pomocą zestawu konfiguracji Sentinel .
Przykładowe wdrożenia Sentinel
Teraz, gdy znasz podstawowe informacje o Sentinel, możesz zastanawiać się, gdzie powinieneś umieścić swoje procesy Sentinel, ile potrzebujesz procesów Sentinel. Ta sekcja pokazuje kilka przykładowych wdrożeń.
Używamy ASCII Art, aby pokazać przykłady konfiguracji w graficzny Format, to właśnie oznaczają różne symbole:
+--------------------+ |. To jest komputer | |. lub VM, która zawodzi | |. niezależnie. My | |. Nazwij to „Box” | +--------------------+
Piszemy w pudełkach, na co działają:
+-------------------+ |. Redis Master M1 | |. Redis Sentinel S1 | +-------------------+
Różne pudełka są połączone liniami, aby pokazać, że są w stanie rozmawiać:
+-------------+ +-------------+ |. Sentinel S1 | --------------- | Sentinel S2 | +-------------+ +-------------+
Party sieciowe są pokazane jako przerwane linie za pomocą cięć:
+-------------+ +-------------+ |. Sentinel S1 | ------ // ------ | Sentinel S2 | +-------------+ +-------------+
- Mistrzowie nazywani są M1, M2, M3, . Mn.
- Repliki nazywane są R1, R2, R3, . RN (R oznacza replika).
- Sentinels nazywane są S1, S2, S3, . Sn.
- Klienci nazywają się C1, C2, C3, . Cn.
- Kiedy instancja zmienia rolę z powodu działań Sentinel, umieszczamy ją w nawiasach kwadratowych, więc [M1] oznacza instancję, która jest teraz mistrzem z powodu interwencji Sentinel.
Zauważ, że nigdy nie pokażemy konfiguracje, w których używane są tylko dwa wartowniki, Ponieważ wartownicy zawsze potrzebują rozmawiać z większością Aby rozpocząć przełączanie awaryjne.
Przykład 1: Tylko dwa wartowniki, nie rób tego
+----+ +----+ |. M1 | --------- | R1 | |. S1 | |. S2 | + ----++ ----+ Konfiguracja: Quorum = 1
- W tej konfiguracji, jeśli Master M1 się nie powiedzie, R1 będzie promowany, ponieważ dwóch wartowników może osiągnąć porozumienie dotyczące awarii (oczywiście z kworum ustawionym na 1), a także może zezwolić na przełączanie awaryjne, ponieważ większość to dwa. Najwyraźniej może to powierzchownie działać, jednak sprawdź następne punkty, aby zobaczyć, dlaczego ta konfiguracja jest zepsuta.
- Jeśli pudełko, w którym działa M1, przestaje działać, również S1 przestaje działać. Sentinel działający w drugim polu S2 nie będzie w stanie zezwolić na przełączanie awaryjne, więc system stanie się dostępny.
Należy zauważyć, że większość jest potrzebna do zamówienia różnych awaryjnych, a później propagować najnowszą konfigurację dla wszystkich wartowników. Należy również zauważyć, że zdolność do przełączania awaryjnego po jednej stronie powyższej konfiguracji, bez żadnego porozumienia, byłaby bardzo niebezpieczna:
+----+ +------+ |. M1 | ---- // ----- | [M1] | |. S1 | |. S2 | +----+ +------+
W powyższej konfiguracji utworzyliśmy dwóch mistrzów (zakładając, że S2 może przełączyć się bez upoważnienia) w idealnie symetryczny sposób. Klienci mogą pisać w nieskończoność po obu stronach i nie ma sposobu na zrozumienie, kiedy partycja leczy, jaka konfiguracja jest właściwa, aby zapobiec Stały podzielony stan mózgu.
Więc proszę Wdrożyć co najmniej trzy wartowniki w trzech różnych pudełkach zawsze.
Przykład 2: Podstawowa konfiguracja z trzema pudełkami
Jest to bardzo prosta konfiguracja, która ma tę zaletę, że jest łatwa do dostrojenia dla dodatkowego bezpieczeństwa. Opiera się na trzech pudełkach, każde pudełko z udziałem procesu Redis i Proces Sentinel.
+----+ |. M1 | |. S1 | + ----+ | + ----+ | + ----+ | R2 | ----+---- | R3 | |. S2 | |. S3 | + ----++ ----+ Konfiguracja: Quorum = 2
Jeśli Master M1 zawiedzie, S2 i S3 zgodzą się na temat awarii i będą w stanie zezwolić na przełączanie awaryjne, dzięki czemu klienci mogą kontynuować.
W każdej konfiguracji Sentinel, ponieważ Redis używa replikacji asynchronicznej, zawsze istnieje ryzyko utraty niektórych pisz. Jednak w powyższej konfiguracji istnieje wyższe ryzyko, ponieważ klienci zostali podzieleni ze starym mistrzem, jak na poniższym zdjęciu:
+----+ |. M1 | |. S1 |
W tym przypadku partycja sieciowa wyizolowała stary Master M1, więc replika R2 jest promowana na mistrz. Jednak klienci, podobnie jak C1, które są w tej samej partycji co stary mistrz, mogą nadal pisać dane do starego mistrza. Dane te zostaną utracone na zawsze, odkąd partycja zagoi się, mistrz zostanie ponownie skonfigurowany jako replika nowego mistrza, odrzucając jego zestaw danych.
Problem ten można złagodzić za pomocą następującej funkcji replikacji Redis, która pozwala przestać akceptować zapisy, jeśli mistrz wykryje, że nie jest już w stanie przenieść swoich zapisów do określonej liczby replik.
Min-Replicas-to-Write 1 min-replicas-max-lag 10
Z powyższą konfiguracją (zobacz samozwańczy Redis.Przykład conf w rozkładu Redis, aby uzyskać więcej informacji) instancja Redis, podczas działania jako mistrz, przestanie akceptować zapisy, jeśli nie może napisać do co najmniej 1 repliki. Ponieważ replikacja jest asynchroniczna Nie możliwość pisania W rzeczywistości oznacza, że replika jest albo odłączona, albo nie wysyła nam asynchronicznych potwierdze.
Korzystając z tej konfiguracji, stary Redis Master M1 w powyższym przykładzie stanie się niedostępny po 10 sekundach. Gdy partycja zagoi się, konfiguracja Sentinel zbiega się z nową, klient C1 będzie mógł przynieść prawidłową konfigurację i będzie kontynuować z nowym Master.
Jednak nie ma bezpłatnego lunchu. Z tym udoskonaleniem, jeśli dwie repliki są w dół, mistrz przestanie akceptować pisze. To kompromis.
Przykład 3: Sentinel w polach klienta
Czasami mamy tylko dwa dostępne pudełka Redis, jeden dla Master i jeden dla repliki. Konfiguracja w przykładzie 2 nie jest w takim przypadku opłacalna, więc możemy uciekać się do następujących, w których wartownicy są umieszczani tam, gdzie są klienci:
+----+ +----+ |. M1 | ----+---- | R1 | |. |. |. |. |. + ----+ | + ----+ | +------------+------------+| |. |. |. |. |. + ----++ ----++ ----+ | C1 | |. C2 | |. C3 | |. S1 | |. S2 | |. S3 | + ----++ ----++ ----+ Konfiguracja: Quorum = 2
W tej konfiguracji punkt widzenia Sentinels jest taki sam jak klienci: jeśli większość klientów jest osiągalna, jest w porządku. C1, C2, C3. Bardziej prawdopodobne jest, że serwer aplikacji, aplikacja Rails lub coś takiego.
Jeśli pudełko, w którym działają M1 i S1, nie powiedzie się, że przełączanie awaryjne nastąpi bez problemów, jednak łatwo jest zobaczyć, że różne partycje sieciowe spowodują różne zachowania. Na przykład Sentinel nie będzie w stanie skonfigurować, jeśli sieć między klientami a serwerami Redis zostanie odłączona, ponieważ zarówno Redis Master i Replica będą niedostępne.
Zauważ, że jeśli C3 zostanie podzielony na M1 (prawie nie jest możliwy z opisaną powyżej sieci, ale bardziej prawdopodobne z różnymi układami lub z powodu awarii na warstwie oprogramowania), mamy podobny problem, jak opisano w przykładzie 2, z różnicą, że tutaj nie mamy sposobu na złamanie symetrii, ponieważ istnieje tylko replika i magister, więc mistrz nie może przestać zaakceptować pytań, gdy jest to odłączone od jego repliki, w przeciwnym razie nie będzie dostępna mistrza, w przeciwnym razie mistrza nie będzie dostępna podczas repliki.
Jest to więc prawidłowa konfiguracja, ale konfiguracja w przykładzie 2 ma zalety, takie jak system HA Redis działający w tych samych polach, co sama Redis, która może być prostsza do zarządzania, a możliwość ograniczenia czasu, jaki mistrz w partycji mniejszościowej może odbierać zapisy zapisane.
Przykład 4: Strona klienta Sentinel z mniej niż trzema klientami
Konfiguracji opisanej w przykładzie 3 nie można użyć, jeśli po stronie klienta znajdują się mniej niż trzy pola (na przykład trzy serwery WWW). W takim przypadku musimy uciekać się do mieszanej konfiguracji, jak następujące:
+----+ +----+ |. M1 | ----+---- | R1 | |. S1 | |. |. S2 | + ----+ | + ----+ | +------+-----+| |. |. |. + ----++ ----+ | C1 | |. C2 | |. S3 | |. S4 | + ----++ ----+ Konfiguracja: Quorum = 3
Jest to podobne do konfiguracji w przykładzie 3, ale tutaj uruchamiamy cztery wartowniki w czterech dostępnych polach. Jeśli Master M1 stanie się niedostępny, pozostałe trzy wartowniki wykonają przełączanie awaryjne.
Teoretycznie ta konfiguracja działa usuwanie pudełka, w którym działają C2 i S4, i ustawienie kworum na 2. Jest jednak mało prawdopodobne, abyśmy chcieli HA po stronie Redis bez wysokiej dostępności w naszej warstwie aplikacji.
Sentinel, Docker, NAT i możliwe problemy
Docker używa techniki zwanej mapowaniem portowym: programy działające wewnątrz kontenerów Docker mogą być eksponowane z innym portem w porównaniu z tym, którego według programu używa. Jest to przydatne, aby uruchomić wiele kontenerów za pomocą tych samych portów, jednocześnie na tym samym serwerze.
Docker nie jest jedynym systemem oprogramowania, w którym tak się dzieje, istnieją inne konfiguracje translacji adresów sieci.
Porty i adresy ponowne tworzenie problemów z Sentinel na dwa sposoby:
- Sentinel auto-odkrycie innych Sentinels już nie działa, ponieważ opiera się na Witam Wiadomości, w których każdy Sentinel ogłasza, na którym porcie i adres IP słuchają połączenia. Jednak wartownicy nie mają sposobu na zrozumienie, że adres lub port jest ponowna, więc ogłasza informacje, które nie są poprawne dla innych osób do połączenia.
- Repliki są wymienione w danych wyjściowych informacji Master Redis w podobny sposób: adres jest wykrywany przez mistrz sprawdzający zdalne rówieśnik połączenia TCP, podczas gdy port jest reklamowany przez samą replikę podczas uścisku dłoni, jednak port może być błędny z tego samego powodu, w którym eksponowany w punkcie 1.
Ponieważ Sentinels automatycznie wykrywa replik przy użyciu informacji o wyjściu z informacji magisterskiej, wykryte repliki nie będą możliwe, a Sentinel nigdy nie będzie w stanie przełączyć się na Master, ponieważ nie ma dobrych replików z punktu widzenia systemu, więc obecnie nie ma możliwości monitorowania z Sentinel zestawem instancji głównych i repliki rozmieszczonych z Docker, Chyba że instruujesz Dockera, aby zmapował port 1: 1.
W przypadku pierwszego problemu, jeśli chcesz uruchomić zestaw instancji Sentinel za pomocą Docker z przekazanymi portami (lub dowolną inną konfiguracją NAT, w której porty są remontowane), możesz użyć dwóch następujących dyrektyw konfiguracji Sentinel, aby wymusić Sentinel do ogłoszenia określonego zestawu IP i portu:
Sentinel ogłasza, że-IP Sentinel ogłasza port
Zauważ, że Docker ma możliwość biegania Tryb sieci hostów (Sprawdź opcję --NET = host, aby uzyskać więcej informacji). Nie powinno to powodować żadnych problemów, ponieważ porty nie są remisowane w tej konfiguracji.
Adresy IP i nazwy DNS
Starsze wersje Sentinel nie obsługiwały nazw hostów i wymaganych adresów IP, które należy określić wszędzie. Zaczynając od wersji 6.2, Sentinel ma opcjonalny Obsługa nazw hostów.
Ta możliwość jest domyślnie wyłączona. Jeśli zamierzasz włączyć obsługę DNS/HostNames, zwróć uwagę:
- Konfiguracja rozdzielczości nazwy w węzłach Redis i Sentinel musi być niezawodna i być w stanie szybko rozwiązać adresy. Nieoczekiwane opóźnienia w rozdzielczości adresu mogą mieć negatywny wpływ na Sentinel.
- Powinieneś używać nazw hostów wszędzie i unikać miksowania nazw hostów i adresów IP. Aby to zrobić, użyj repliki-anundu-iP i Sentinel ogłasza IP odpowiednio dla wszystkich instancji Redis i Sentinel.
Włączanie konfiguracji Global Resolve-HostNames pozwala Sentinel akceptować nazwy hostów:
- W ramach polecenia Sentinel Monitor
- Jako adres repliki, jeśli replika używa wartości nazwy hosta dla repliki-anundu-iP
Sentinel zaakceptuje nazwy hostów jako prawidłowe dane wejściowe i rozwiąże je, ale nadal będzie odwoływać się do adresów IP podczas ogłaszania instancji, aktualizacji plików konfiguracyjnych itp.
Włączanie ogłoszeń Globalna konfiguracja Hostnames sprawia, że Sentinel używa nazw hostów. Wpływa to na odpowiedzi klientom, wartości zapisane w plikach konfiguracyjnych, polecenie repliki wydane replice itp.
To zachowanie może nie być kompatybilne ze wszystkimi klientami Sentinel, które mogą wyraźnie oczekiwać adresu IP.
Korzystanie z nazw hostów może być przydatne, gdy klienci używają TLS do łączenia się z instancjami i wymagają nazwy, a nie adresu IP, aby wykonać dopasowanie certyfikatu ASN.
Szybki samouczek
W następnych sekcjach tego dokumentu wszystkie szczegóły dotyczące Sentinel API, Konfiguracja i semantyka będą objęte stopniem stopniowo. Jednak dla osób, które chcą grać z systemem jak najszybciej, ta sekcja jest samouczkiem, który pokazuje, jak konfigurować i wchodzić w interakcje z 3 instancjami Sentinel.
Tutaj zakładamy, że instancje są wykonywane w porcie 5000, 5001, 5002. Zakładamy również, że masz działające Master Redis w porcie 6379 z repliką działającą w porcie 6380. Użyjemy adresu IPv4 Loopback 127.0.0.1 wszędzie podczas samouczka, zakładając, że uruchamiasz symulację na komputerze osobistym.
Trzy pliki konfiguracyjne Sentinel powinny wyglądać jak następujące:
Port 5000 Sentinel Monitor MyMaster 127.0.0.1 6379 2 Sentinel Down-After-Milliiseconds MyMaster 5000 Sentinel Timeout MyMaster 60000 Sentinel równoległe synchody MyMaster 1
Pozostałe dwa pliki konfiguracyjne będą identyczne, ale użycie 5001 i 5002 jako numerów portów.
Kilka rzeczy, które należy zwrócić uwagę na temat powyższej konfiguracji:
- Zestaw główny nazywa się MyMaster . Identyfikuje mistrz i jego repliki. Od każdego Zestaw główny ma inną nazwę, Sentinel może jednocześnie monitorować różne zestawy mistrzów i replik.
- Kworum została ustawiona na wartość 2 (ostatni argument dyrektywy konfiguracji monitora Sentinel).
- Wartość w dół po Milliisekundach wynosi 5000 milisekund, czyli 5 sekund, więc mistrzowie zostaną wykryci jako niepowodzenie, gdy tylko nie otrzymamy odpowiedzi z naszych pingów w tym czasie.
Po uruchomieniu trzech wartowników zobaczysz kilka wiadomości, które rejestrują, na przykład:
+Monitor Master MyMaster 127.0.0.1 6379 Quorum 2
To jest zdarzenie Sentinel i możesz otrzymać tego rodzaju wydarzenia za pośrednictwem PUB/Sub, jeśli zasubskrybujesz nazwę zdarzenia, jak określono później Wiadomości pubowe/sub Sekcja.
Sentinel generuje i rejestruje różne zdarzenia podczas wykrywania awarii i przełączania awaryjnego.
Pytanie Sentinel o stan mistrza
Najbardziej oczywistą rzeczą związaną z Sentinel, aby rozpocząć, jest sprawdzenie, czy mistrz, który monitoruje, ma się dobrze:
$ redis -cli -p 5000 127.0.0.1: 5000> Sentinel Master MyMaster 1) „Nazwa” 2) „MyMaster” 3) „ip” 4) ”127.0.0.1 „5)„ port ”6)„ 6379 ”7)„ runid ”8)” 953AE6A589449C13DDEFAEE3538D356D287F509B ”9)„ Flag ”10)„ Master ”11)„ Połączenie łączy ” -ping-reply „18)” 735 ”19)„ Ostatnie ping-powtórzenie ”20)„ 735 ”21)„ Down-After-MilliiseConds ”22)„ 5000 ”23)„ Info-Refresh ”24)„ 126 ”25)„ Rolka „Role” z roli „26)” „32)” 1 ”33)„ Num-Ather-Sentinels ”34)„ 2 ”35)„ Quorum ”36)„ 2 ”37)„ Timeover Timeout ”38)„ 60000 ”39)„ Syncs równoległe ”40)„ 1 ”
Jak widać, drukuje szereg informacji o mistrzu. Jest dla nas kilka, które są szczególnie interesujące:
- Num-Ather-Sentinels to 2, więc wiemy, że wartownik wykrył już dwa kolejne wartowniki dla tego mistrza. Jeśli sprawdzisz dzienniki, zobaczysz generowane zdarzenia +Sentinel.
- Flagi to tylko mistrz . Gdyby Mistrz był w dół, moglibyśmy spodziewać się flagi S_Down lub O_Down.
- Num-SLAVES jest prawidłowo ustawiony na 1, więc Sentinel wykrył również, że jest załączona replika dla naszego mistrza.
Aby dowiedzieć się więcej o tej instancji, możesz spróbować następujących dwóch poleceń:
Sentinel Replicas MyMaster Sentinel Sentinels MyMaster
Pierwszy dostarczy podobnych informacji o replikach związanych z Masterem, a drugie o innych wartownikach.
Uzyskanie adresu obecnego mistrza
Jak już określiliśmy, Sentinel działa również jako dostawca konfiguracji dla klientów, którzy chcą połączyć się z zestawem master i replik. Ze względu na możliwe awaryjne lub rekonfiguracje klienci nie mają pojęcia, kto jest obecnie aktywnym mistrzem dla danego zestawu instancji, więc Sentinel eksportuje interfejs API, aby zadać to pytanie:
127.0.0.1: 5000> Sentinel GET-MASTER-ADDR-BED-NAME MYMASTER 1) ”127.0.0.1 „2)„ 6379 ”
Testowanie przełączania awaryjnego
W tym momencie nasze zabawkowe wdrożenie Sentinel jest gotowe do przetestowania. Możemy po prostu zabić nasz mistrz i sprawdzić, czy konfiguracja się zmienia. Do tego możemy po prostu zrobić:
redis -cli -p 6379 debugowanie snu 30
To polecenie sprawi, że nasz mistrz nie będzie już dostępny, śpiąc przez 30 sekund. Zasadniczo z jakiegoś powodu symuluje wiszący mistrz.
Jeśli sprawdzisz dzienniki Sentinel, powinieneś być w stanie zobaczyć wiele działań:
- Każdy wartownik wykrywa, że Master jest w dół z zdarzeniem +sdown.
- To wydarzenie zostało później eskalowane do +Odown, co oznacza, że wielu wartowników zgadza się na fakt, że mistrz nie jest osiągalny.
- Sentinels głosuje na wartownika, który rozpocznie pierwszą próbę awaryjnego.
- Odbywa się przełączanie awaryjne.
Jeśli zapytasz ponownie, jaki jest obecny adres główny dla MyMaster, ostatecznie powinniśmy uzyskać inną odpowiedź tym razem:
127.0.0.1: 5000> Sentinel GET-MASTER-ADDR-BED-NAME MYMASTER 1) ”127.0.0.1 „2)„ 6380 ”
Jak na razie dobrze. W tym momencie możesz skakać, aby utworzyć wdrożenie Sentinel lub przeczytać więcej, aby zrozumieć wszystkie polecenia i wewnętrzne Sentinel.
Sentinel API
Sentinel zapewnia interfejs API w celu sprawdzenia jego stanu, sprawdź zdrowie monitorowanych mistrzów i replik, subskrybuj w celu otrzymania określonych powiadomień i zmiana konfiguracji Sentinel w czasie wykonywania.
Domyślnie Sentinel działa przy użyciu portu TCP 26379 (pamiętaj, że 6379 to normalny port Redis). Sentinels akceptuje polecenia za pomocą protokołu Redis, dzięki czemu możesz użyć Redis-CLI lub dowolnego innego niezmodyfikowanego klienta Redis, aby porozmawiać z Sentinel.
Możliwe jest bezpośrednio zapytanie o wartość, aby sprawdzić, jaki jest stan monitorowanych instancji Redis z jego punktu widzenia, aby zobaczyć, co zna inni wartownicy, i tak dalej. Alternatywnie, za pomocą PUB/Sub, można otrzymać Styl push Powiadomienia z Sentinels, za każdym razem, gdy zdarza się pewne zdarzenie, takie jak przełączanie awaryjne lub instancja wprowadzająca warunek błędu i tak dalej.
Polecenia Sentinel
Polecenie Sentinel jest głównym API dla Sentinel. Poniżej znajduje się lista jej podkomendy (w stosownych przypadkach odnotowano wersję minimalną):
- Sentinel Config Get (> = 6.2) Uzyskaj bieżącą wartość globalnego parametru konfiguracyjnego Sentinel. Określona nazwa może być wieloznaczką, podobną do polecenia Redis Config GET.
- Zestaw konfiguracji Sentinel (> = 6.2) Ustaw wartość globalnego parametru konfiguracyjnego Sentinel.
- Sentinel Ckquorum Sprawdź, czy bieżą. To polecenie powinno być używane w systemach monitorowania, aby sprawdzić, czy wdrożenie wartownika jest w porządku.
- Sentinel Flushconfig Zmuszać Sentinel do przepisania swojej konfiguracji na dysku, w tym obecny stan Sentinel. Zwykle Sentinel przepisuje konfigurację za każdym razem, gdy coś zmienia się w jej stanie (w kontekście podzbioru stanu, który jest utrzymywany na dysku w ramach restartu). Czasami jednak możliwe jest utrata pliku konfiguracyjnego z powodu błędów operacyjnych, awarii dysku, skryptów aktualizacji pakietów lub menedżerów konfiguracji. W takich przypadkach sposób na zmuszenie Sentinel do przepisania pliku konfiguracyjnego jest przydatna. To polecenie działa nawet jeśli całkowicie brakuje poprzedniego pliku konfiguracyjnego.
- Sentinel Failover Wymusza awaryjne przełączenie awaryjne, tak jakby Master nie był możliwy do osiągnięcia, i bez prośby o zgodę na inne Sentinels (jednak nowa wersja konfiguracji zostanie opublikowana, aby inne Sentinels zaktualizowały swoje konfiguracje).
- Sentinel GET-MASTER-ADDR-BET-NAME Zwraca IP i numer portu Master z tą nazwą. Jeśli przełączanie awaryjne jest w toku lub zakończone z powodzeniem dla tego mistrza, zwraca adres i port promowanej repliki.
- Sentinel Info Cache (> = 3.2) Zwróć buforowane dane wyjściowe Masters i Replicas.
- Sentinel Is-Master-Down-by-Addr Sprawdź, czy Master określony przez IP: Port jest niższy od aktualnego punktu widzenia Sentinel. To polecenie służy głównie do użytku wewnętrznego.
- Sentinel Master Pokaż stan i informacje określonego Mistrza.
- Sentinel Masters Pokaż listę monitorowanych mistrzów i ich stanu.
- Sentinel Monitor Rozpocznij monitorowanie Sentinel. Patrz Rekonfiguracja Sentinel w czasie wykonywania sekcja, aby uzyskać więcej informacji.
- Sentinel Myid (> = 6.2) Zwróć identyfikator instancji Sentinel.
- Sentinel oczekujący na skrypty To polecenie zwraca informacje o oczekujących skryptach.
- Sentinel Usuń Zatrzymaj monitorowanie Sentinel. Patrz Rekonfiguracja Sentinel w czasie wykonywania sekcja, aby uzyskać więcej informacji.
- Repliki sentinel (> = 5.0) Pokaż listę replików dla tego mistrza i ich stanu.
- Sentinel Sentinels pokazują listę instancji Sentinel dla tego mistrza i ich stanu.
- Zestaw Sentinel Ustaw konfigurację monitorowania Sentinel. Patrz Rekonfiguracja Sentinel w czasie wykonywania sekcja, aby uzyskać więcej informacji.
- Sentinel Simulate Failure (decydujący wybór | (> = 3.2) To polecenie symuluje różne scenariusze wypadków Sentinel.
- Sentinel zresetuje to polecenie zresetuje wszystkich mistrzów o pasującej nazwie. Argument wzorca jest wzorem w stylu globalnym. Proces resetowania usuwa każdy poprzedni stan w mistrzu (w tym przełączanie awaryjne) i usuwa każdą replikę i wartownik już odkrytych i powiązanych z mistrzem.
W celu zarządzania połączeniami i administracji Sentinel obsługuje następujący podzbiór poleceń Redis:
- ACL (> = 6.2) To polecenie zarządza listą kontroli dostępu Sentinel. Więcej informacji można znaleźć na stronie dokumentacji ACL i Uwierzytelnianie listy kontroli dostępu Sentinel.
- Auth (> = 5.0.1) Uwierzytelnij połączenie klienta. Aby uzyskać więcej informacji, można znaleźć w poleceniu Auth i Konfigurowanie instancji Sentinel z uwierzytelnianiem Sekcja.
- KLIENT To polecenie zarządza połączeniami klientów. Więcej informacji można znaleźć na stronach podkomisji.
- KOMENDA (> = 6.2) To polecenie zwraca informacje o poleceń. Więcej informacji można znaleźć w poleceniu i jego różnych podkomisjach.
- CZEŚĆ (> = 6.0) Przełącz protokół połączenia. Więcej informacji można znaleźć w poleceniu Hello.
- Informacje Zwracanie informacji i statystyki dotyczące serwera Sentinel. Aby uzyskać więcej informacji, zobacz polecenie informacji.
- ŚWIST To polecenie po prostu zwraca ponga.
- ROLA To polecenie zwraca ciąg „Sentinel” i listę monitorowanych mistrzów. Więcej informacji można znaleźć w poleceniu roli.
- ZAMKNIĘCIE Zamknij instancję Sentinel.
Wreszcie, Sentinel obsługuje również komendy subskrypcji, rezygnacji, psubscribe i punScribcribe. Patrz Wiadomości pubowe/sub Sekcja Aby uzyskać więcej informacji.
Rekonfiguracja Sentinel w czasie wykonywania
Zaczynając od wersji Redis 2.8.4, Sentinel zapewnia interfejs API w celu dodania, usunięcia lub zmiany konfiguracji danego mistrza. Pamiętaj, że jeśli masz wiele wartowników, powinieneś zastosować zmiany w wszystkich instancjach, aby Redis Sentinel działał poprawnie. Oznacza to, że zmiana konfiguracji pojedynczego wartownika nie propaguje zmian do innych wartowników w sieci.
Poniżej znajduje się lista użytych podkomendy Sentinel w celu zaktualizowania konfiguracji instancji Sentinel.
- Sentinel Monitor To polecenie mówi Sentinelowi, aby rozpoczął monitorowanie nowego Master z określoną nazwą, IP, portem i kworum. Jest to identyczne z dyrektywą konfiguracyjną Sentinel Monitor w Sentinel.Plik konfiguracyjny Conf, z różnicą, której nie można użyć nazwy hosta w IP, ale musisz podać adres IPv4 lub IPv6.
- Sentinel Usuwa się w celu usunięcia określonego Master: Master nie będzie już monitorowany i zostanie całkowicie usunięty ze stanu wewnętrznego Sentinel, więc nie będzie już wymieniony przez Sentinel Masters i tak dalej.
- Zestaw Sentinel [ . ] Polecenie set jest bardzo podobne do polecenia zestawu konfiguracji Redis i jest używane do zmiany parametrów konfiguracji określonego master. Można określić wiele par opcji / wartości (lub w ogóle nikogo). Wszystkie parametry konfiguracyjne, które można skonfigurować za pomocą Sentinel.Conf można również konfigurować za pomocą polecenia Set.
Poniżej znajduje się przykład polecenia Sentinel Set w celu zmodyfikowania konfiguracji w dół-milisekund master o nazwie obiekty Cache:
Sentinel ustawił obiekty Master-Master w dół po Milliisekundach 1000
Jak już wspomniano, Sentinel Set może być używany do ustawienia wszystkich parametrów konfiguracji, które można rozwiązać w pliku konfiguracyjnym uruchamiania. Ponadto możliwe jest zmiana tylko konfiguracji kworum głównego bez usunięcia i ponownego dodania Master z usunięciem Sentinel, a następnie Sentinel Monitor, ale po prostu użycie:
Sentinel Ustaw obiekty Master-Master Quorum 5
Zauważ, że nie ma równoważnego polecenia GET, ponieważ Sentinel Master zapewnia wszystkie parametry konfiguracyjne w prostym do analizowania formatu (jako tablica par pola/wartości).
Zaczynając od Redis wersja 6.2, Sentinel umożliwia również uzyskanie i ustawianie globalnych parametrów konfiguracyjnych, które były obsługiwane tylko w pliku konfiguracyjnym przed tym.
- Sentinel Config otrzymaj bieżącą wartość globalnego parametru konfiguracyjnego Sentinel. Określona nazwa może być wieloznaczką, podobną do polecenia Redis Config GET.
- Sentinel Config Ustaw wartość globalnego parametru konfiguracyjnego Sentinel.
Globalne parametry, które można manipulować, obejmują:
- Resolve-Hostnames, ogłasza nazwy Hostnam . Widzieć Adresy IP i nazwy DNS.
- Ogłaszaj-IP, ogłasza port . Widzieć Sentinel, Docker, NAT i możliwe problemy.
- Sentinel-User, Sentinel-Pass . Widzieć Konfigurowanie instancji Sentinel z uwierzytelnianiem.
Dodawanie lub usuwanie wartowników
Dodanie nowego wartownika do wdrożenia jest prostym procesem ze względu na mechanizm automatycznego odkrywania zaimplementowany przez Sentinel. Wszystko, co musisz zrobić, to rozpocząć nowy Sentinel skonfigurowany do monitorowania aktualnie aktywnego Master. W ciągu 10 sekund Sentinel nabył listę innych wartowników i zestaw replików dołączonych do mistrza.
Jeśli chcesz dodać wiele wartowników jednocześnie, sugeruje się dodanie go jeden po drugim, czekając, aż wszystkie pozostałe wartowniki już wiedzą o pierwszym przed dodaniem następnego. Jest to przydatne, aby nadal zagwarantować, że większość można osiągnąć tylko z jednej strony partycji, w przypadku awarii przypadków powinny nastąpić w procesie dodawania nowych wartowników.
Można to łatwo osiągnąć, dodając każdego nowego wartownika z opóźnieniem 30 -sekundowym i podczas braku partycji sieciowych.
Na końcu procesu można użyć polecenia Sentinel Mastername, aby sprawdzić, czy wszyscy wartownicy zgadzają się na całkowitą liczbę Sentinels monitorujących mistrz.
Usunięcie wartownika jest nieco bardziej złożone: Sentinels nigdy nie zapominają już widziały Sentinels, Nawet jeśli nie są one osiągalne przez długi czas, ponieważ nie chcemy dynamicznie zmieniać większości potrzebnej do autoryzacji przełączania awaryjnego i tworzenia nowego numeru konfiguracji. W celu usunięcia wartownika należy wykonać następujące kroki przy braku partycji sieciowych:
- Zatrzymaj proces Sentinel Sentinel, który chcesz usunąć.
- Wyślij polecenie Sentinel Reset * do wszystkich innych instancji Sentinel (zamiast * Możesz użyć dokładnej nazwy głównej, jeśli chcesz zresetować tylko jeden mistrz). Jeden po drugim, czekając co najmniej 30 sekund między przypadkami.
- Sprawdź, czy wszyscy wartownicy zgadzają się co do liczby aktualnie aktywnych Sentinels, sprawdzając wyniki Sentinel Mastername każdego Sentinel.
Usunięcie starych replików mistrza lub nieosiągalnych
Sentinels nigdy nie zapominają o replikach danego mistrza, nawet jeśli są one nieosiągalne przez długi czas. Jest to przydatne, ponieważ wartownicy powinni być w stanie poprawnie ponownie skonfigurować powracającą replikę po partycji sieciowej lub zdarzeniu awarii.
Ponadto po awarii awaryjne nieudane mistrz jest praktycznie dodawane jako replika nowego mistrza, w ten sposób zostanie ponownie skonfigurowana do powtórzenia z nowym mistrzem, gdy tylko będzie dostępna ponownie.
Jednak czasami chcesz usunąć replikę (która może być starym mistrzem) na zawsze z listy replików monitorowanych przez wartowniki.
Aby to zrobić, musisz wysłać polecenie Sentinel Reset Mastername do wszystkich wartowników: odświeżą listę replików w ciągu następnych 10 sekund, tylko dodając te wymienione jako poprawnie replikacja z bieżącego wyjścia informacyjnego głównego.
Wiadomości pubowe/sub
Klient może użyć Sentinel jako serwera PUB/Subbled Compatybilne (ale nie można użyć Public) w celu zasubskrybowania lub psubscribe do kanałów i otrzymania powiadomienia o konkretnych zdarzeniach.
Nazwa kanału jest taka sama jak nazwa wydarzenia. Na przykład kanał o nazwie +sdown otrzyma wszystkie powiadomienia związane z instancjami wchodzącymi do sdown (sdown oznacza, że instancja nie jest już dostępna z punktu widzenia wartownika, w którym zapytasz).
Aby uzyskać wszystkie wiadomości, po prostu zasubskrybuj za pomocą PSUBSCRIPE * .
Poniżej znajduje się lista kanałów i formatów wiadomości, które możesz otrzymać za pomocą tego interfejsu API. Pierwsze słowo to nazwa kanału / zdarzenia, reszta jest formatem danych.
Uwaga: gdzie Szczegóły instancji jest określone, co oznacza, że podano następujące argumenty w celu zidentyfikowania instancji docelowej:
Część identyfikująca mistrz (od argumentu @ do końca) jest opcjonalna i jest określona tylko wtedy, gdy instancja nie jest sama mistrzem.
- +Mistrz resetowania-- Mistrz został zresetowany.
- +niewolnik-- Wykryto i dołączono nową replikę.
- +Nieważne-niewolnicy w stanie awaryjnym-- Stan przełączania awaryjnego zmienił się na stan Reconf-Slaves.
- +Wykorzystane przez przełącznik awaryjne-- Wykryto przełączanie awaryjne zapoczątkowane przez innego Sentinel lub jakikolwiek inny podmiot zewnętrzny (załączona replika zamieniona w mistrz).
- +SLAVE-RECONF-SENT-- Lider Sentinel wysłał polecenie repliki do tej instancji, aby ponownie skonfigurować nową replikę.
- +Slave-Reconf-inprog-- Replika, które rekonfiguruje się, okazała się repliką nowej pary Master IP: Port, ale proces synchronizacji nie jest jeszcze kompletny.
- +Slave-Reconf-Done-- Replika jest teraz zsynchronizowana z nowym mistrzem.
- -dup-sentinel-- Jeden lub więcej wartowników dla określonego Mistrza zostało usunięte jako powielone (dzieje się tak na przykład, gdy instancja Sentinel jest ponownie uruchomiona).
- +posterunek-- Nowy wartownik dla tego mistrza został wykryty i załączony.
- +sdown-- Określona instancja jest teraz w stanie subiektywnie.
- -sdown-- Określona instancja nie jest już w stanie subiektywnie.
- +Odown-- Określona instancja jest teraz w stanie obiektywnie w dół.
- -Odown-- Określona instancja nie jest już w stanie obiektywnie w dół.
- +New-Epoch-- Obecna epoka została zaktualizowana.
- +próba-- Nowa awaria awaryjna, czekając na wybór większości.
- +Wybrany lider-- Wygrał wybory do określonej epoki, może wykonać przełączanie awaryjne.
- +SPECT-SELECT-SLAVE-- Nowy stan przełączania awaryjnego to SELECT-SLAVE: Staramy się znaleźć odpowiednią replikę promocji.
- Brak dobrego niewolnicy-- Nie ma dobrej repliki do promowania. Obecnie spróbujemy po pewnym czasie, ale prawdopodobnie to się zmieni, a maszyna stanowa w ogóle przerwie przełączanie awaryjne w tym przypadku.
- Wybrany niewolnik-- Znaleźliśmy określoną dobrą replikę do promowania.
- State awaryjne-send-slaveof-noone-- Staramy się ponownie skonfigurować promowaną replikę jako mistrza, czekając na zmianę.
- Przejście awaryjne dla czasu-- Przewodniczący zakończony limit czasu, repliki zostaną ostatecznie skonfigurowane do replikacji z nowym mistrzem.
- Extiver-end-- Przełączanie awaryjne zakończone z powodzeniem. Wszystkie repliki wydaje się być ponownie skonfigurowane do powtórzenia z nowym mistrzem.
- Mistrz przełącznika-- Nowy główny adres IP i adres jest określony po zmianie konfiguracji. To jest Wiadomość, którymi interesuje się większość użytkowników zewnętrznych.
- +nachylenie -- Wprowadzono tryb przechylania.
- -nachylenie -- Tryb pochylenia wyszedł.
Obsługa stanu
Błąd -Busy jest zwracany przez instancję Redis, gdy skrypt LUA działa na więcej czasu niż skonfigurowany limit czasu skryptu LUA. Kiedy zdarzy się to przed uruchomieniem porażki nad Redis Sentinel, spróbuje wysłać polecenie zabijania skryptu, to odniesie sukces tylko wtedy.
Jeśli instancja jest nadal w stanie błędu po tej próbie.
Priorytet repliki
Instancje Redis mają parametr konfiguracyjny o nazwie repliki priorytet . Informacje te są ujawniane przez Redis Replica Instances w ich wyjściu informacji, a Sentinel używa ich, aby wybrać replikę spośród tych, których można użyć w celu awarii Master:
- Jeśli priorytet repliki jest ustawiony na 0, replika nigdy nie jest promowana na Master.
- Repliki z niżej Sentinel preferuje numer priorytetu.
Na przykład, jeśli istnieje replika S1 w tym samym centrum danych bieżącego głównego, a inna replika S2 w innym centrum danych, możliwe jest ustawienie S1 z priorytetem 10 i S2 z priorytetem 100, tak że jeśli główny nie powiedzie się, a zarówno S1, jak i S2 będą dostępne, s1 będzie preferowane.
Aby uzyskać więcej informacji o sposobie wyboru replik, sprawdź Wybór repliki i priorytet sekcja niniejszej dokumentacji.
Uwierzytelnianie Sentinel i Redis
Gdy główny jest skonfigurowany do uwierzytelnienia od klientów, jako miara bezpieczeństwa, repliki muszą być również świadomi poświadczeń, aby uwierzytelnić się za pomocą głównego i utworzyć połączenie Master-Replica używane do protokołu replikacji asynchronicznej.
Uwierzytelnianie listy kontroli dostępu Redis
Począwszy od Redis 6, uwierzytelnianie użytkownika i uprawnienia jest zarządzane z listą kontroli dostępu (ACL).
Aby Sentinels połączyli się z instancjami Redis Server, gdy są one skonfigurowane z ACL, konfiguracja Sentinel musi zawierać następujące dyrektywy:
Sentinel Auth-User Sentinel Auth-Pass
Gdzie i są nazwą użytkownika i hasłem do dostępu do instancji grupy. Te poświadczenia powinny być dostarczone we wszystkich przypadkach Redis grupy z minimalnymi uprawnieniami kontroli. Na przykład:
127.0.0.1: 6379> ACL SETUSER Sentinel-User On> Some Sword AllChannels +Multi +SlaveOF +Ping +Exec +Subcribe +Config | Rewrite +Rola +Publikuj +Informacje +Klient | nazwa SetName +Klient +Skrypt | Kill +Kill +Kill | Kill +Kill +Kill +Kill +Kill | Kill +Kill | Kill +Skrypt | Zabij się
Uwierzytelnianie tylko z hasłem Redis
Do Redis 6, uwierzytelnianie jest osiągane za pomocą następujących dyrektyw konfiguracji:
- wymaganie w głównym, aby ustawić hasło do uwierzytelnienia i upewnić się, że instan.
- MasterAuth w replikach, aby repliki mogły uwierzytelnić się z głównym, aby poprawnie odtworzyć z niego dane.
Gdy używany jest Sentinel, nie ma ani jednego mistrza, ponieważ po replikach przełączania awaryjnego mogą odgrywać rolę mistrzów, a starych mistrzów mogą zostać ponownie skonfigurowane, aby działać jako replik, więc chcesz ustawić powyższe dyrektywy we wszystkich twoich przypadkach, zarówno mistrzów, jak i replik.
Jest to również zwykle rozsądna konfiguracja, ponieważ nie chcesz chronić danych tylko w głównym, mając te same dane dostępne w replikach.
Jednak w rzadkim przypadku, w którym potrzebujesz repliki, która jest dostępna bez uwierzytelnienia, nadal możesz to zrobić, konfigurując Priorytet repliki zerowej, Aby zapobiec promocji tej repliki na master i konfigurację w tej replice tylko dyrektywa MasterAuth, bez korzystania z dyrektywy wymagań, aby dane były czytelne przez nieautentycznych klientów.
Aby Sentinels połączyli się z instancjami Redis Server, gdy są one skonfigurowane z wymaganiem, konfiguracja Sentinel musi zawierać dyrektywę Sentinel Auth-Pass, w formacie:
Sentinel Auth-Pass
Konfigurowanie instancji Sentinel z uwierzytelnianiem
Same instancje Sentinel można zabezpieczyć, wymagając od klientów uwierzytelnienia za pośrednictwem polecenia Auth. Zaczynając od Redis 6.2, dostępna jest lista kontroli dostępu (ACL), podczas gdy poprzednie wersje (począwszy od Redis 5.0.1) Obsługa uwierzytelniania tylko hasła.
Zauważ, że konfiguracja uwierzytelniania Sentinel powinna być zastosowane do każdej z instancji w twoim wdrożeniu i Wszystkie instancje powinny korzystać z tej samej konfiguracji. Ponadto uwierzytelnianie ACL i hasła nie powinno być używane razem.
Uwierzytelnianie listy kontroli dostępu Sentinel
Pierwszym krokiem w zabezpieczeniu instancji Sentinel z ACL jest zapobieganie nieautoryzowanemu dostępowi do niego. Aby to zrobić, musisz wyłączyć domyślny superuser (lub przynajmniej skonfiguruj go z silnym hasłem) i utworzyć nowy i umożliwić mu dostęp do kanałów PUB/Sub:
127.0.0.1: 5000> ACL SETUSER admin na> administrator-hasło AllChannels +@All OK 127.0.0.1: 5000> ACL Setuser domyślnie OK OK
Domyślny użytkownik jest używany przez Sentinel do łączenia się z innymi instancjami. Możesz podać poświadczenia innego superuserów z następującymi dyrektywami konfiguracyjnymi:
Sentinel Sentinel-User Sentinel Sentinel-Pass
Gdzie i są odpowiednio superuser i hasło Sentinel (e.G. Administrator i administrator w powyższym przykładzie).
Wreszcie, w celu uwierzytelniania przychodzących połączeń klientów, możesz utworzyć Sentinel Ograniczony profil użytkownika, taki jak następujące:
127.0.0.1: 5000> ACL SETUSER STERINEL-USER ON> Użytkownik-Pass słów-@all +Auth +Klient | GetName +Klient | Idname | setName +polecenie +hello +ping +rola +sentinel | get-master-addr-po-name +Sentinel | Sentinel | Myid +Sentinel | Replias +Sentinel | Sentinel |
Więcej informacji można znaleźć w dokumentacji wybranego klienta Sentinel.
Uwierzytelnianie tylko dla hasła Sentinel
Aby użyć Sentinel z uwierzytelnianiem tylko dla hasła, dodaj dyrektywę konfiguracji wymagań Wszystko Twoje instancje Sentinel w następujący sposób:
wymaganie „your_password_here”
Po skonfigurowaniu w ten sposób Sentinels zrobi dwie rzeczy:
- Wymagane będzie hasło od klientów w celu wysyłania poleceń do wartowników. Jest to oczywiste, ponieważ w ten sposób taka dyrektywa konfiguracyjna działa ogólnie w Redis.
- Ponadto to samo hasło skonfigurowane do dostępu do lokalnego wartownika, będzie używane przez niniejszą instancję Sentinel w celu uwierzytelnienia wszystkich innych instancji Sentinel, z którymi się łączy.
To znaczy że Będziesz musiał skonfigurować to samo hasło wymagane we wszystkich instancjach Sentinel. W ten sposób każdy wartownik może rozmawiać z każdym innym wartownikiem bez potrzeby skonfigurowania dla każdego wartownika hasła, aby uzyskać dostęp do wszystkich innych wartowników, byłoby to bardzo niepraktyczne.
Przed użyciem tej konfiguracji upewnij się, że biblioteka klientów może wysłać polecenie Auth do instancji Sentinel.
Wdrożenie klientów Sentinel
Sentinel wymaga wyraźnej obsługi klienta, chyba że system jest skonfigurowany do wykonywania skryptu, który wykonuje przejrzyste przekierowanie wszystkich żądań do nowej instancji głównej (wirtualne IP lub inne podobne systemy). Temat implementacji bibliotek klientów jest omówiony w wytycznych dotyczących klientów dokumentu Sentinel.
Bardziej zaawansowane koncepcje
W poniższych sekcjach omówimy kilka szczegółów na temat tego, jak działa Sentinel, bez uciekania się do szczegółów wdrożenia i algorytmów, które zostaną omówione w ostatniej części tego dokumentu.
Stan sddów i awarii Odown
Redis Sentinel ma dwa różne koncepcje bycie w dół, jeden nazywa się Subiektywnie w dół warunek (sdd) i jest stanem w dół, który jest lokalny dla danej instancji wartownika. Inny jest nazywany Obiektywnie w dół Warunek (Odown) i jest osiągany, gdy wystarczająca liczba wartowników (przynajmniej liczba skonfigurowana jako parametr kworum monitorowanego mistrza) ma warunek sdown i uzyskaj informacje zwrotne od innych wartowników za pomocą sentinel is-master-down-na-addr polecenie polecenia.
Z punktu widzenia wartownika osiągnięto warunek sdown, gdy nie otrzymuje prawidłowej odpowiedzi na żądania pingowe dla liczby sekund określonych w konfiguracji jako parametr IS-Master-Down-After-Millisekunds.
Dopuszczalna odpowiedź na ping jest jedną z poniższych:
- Ping odpowiedział +pong.
- Ping odpowiedział błędem ładowania.
- Ping odpowiedział z błędem -mastdown.
Każda inna odpowiedź (lub w ogóle brak odpowiedzi) jest uważana za nie ważną. Zwróć jednak uwagę na to logiczny mistrz, który reklamuje się jako replika w wyniku informacji, jest uważany za na dół.
Należy zauważyć, że Sdown wymaga, aby nie otrzymano akceptowalnej odpowiedzi na cały skonfigurowany przedział, więc na przykład jeśli przedział wynosi 30000 milisekund (30 sekund) i otrzymujemy dopuszczalną odpowiedź ping co 29 sekund, instancja jest uważana za działanie.
Sdown nie wystarczy, aby uruchomić przełączanie awaryjne: oznacza to, że tylko jeden wartownik uważa, że instancja Redis nie jest dostępna. Aby uruchomić przełączanie awaryjne, należy osiągnąć stan Odown.
Aby przejść z sdown na Odown, nie stosuje się silnego algorytmu konsensusu, ale tylko forma plotek: jeśli dany wartownik otrzyma doniesienia, że mistrz nie działa z wystarczającej liczby wartowników w danym zakresie czasu, sdds jest promowany do Odown. Jeśli ten potwierdzenie zostanie później brakuje, flaga jest wyczyszczona.
Wymagane jest bardziej ścisłe autoryzacja, która wykorzystuje rzeczywistą większość, aby naprawdę rozpocząć przełączanie awaryjne, ale nie można wywołać awaryjnego przełączania awaryjnego bez dotarcia do stanu Odown.
Warunek Odvn Dotyczy tylko mistrzów. W przypadku innych przypadków Sentinel nie wymaga działania, więc stan Odown nigdy nie jest osiągany po repliki i innych wartowników, ale tylko sdd jest.
Jednak Sdown ma również implikacje semantyczne. Na przykład replika w stanie sdown nie jest wybierana do promowania przez wartownik wykonujący awaryję.
Sentinels i Replicas Auto Discovery
Sentinels pozostają w kontakcie z innymi Sentinels, aby wzajemnie sprawdzić dostępność wzajemnego i wymieniać wiadomości. Nie musisz jednak konfigurować listy innych adresów Sentinel w każdej uruchomionej instancji Sentinel, ponieważ Sentinel używa instancji Redis Pub/Sublites, aby odkryć inne Sentinels, które monitorują tych samych mistrzów i repliki.
Ta funkcja jest zaimplementowana przez wysyłanie witaj wiadomości do kanału o nazwie __sentinel __: Hello .
Podobnie nie musisz konfigurować, jaka jest lista replików dołączonych do mistrza, ponieważ Sentinel automatycznie odkryje tę listę zapytania.
- Każdy Sentinel publikuje wiadomość do każdego monitorowanego Master i Replica Pub/Sub Channel __sentinel __: Witam, co dwie sekundy, ogłaszając swoją obecność z IP, Port, Runid.
- Każdy wartownik jest subskrybowany do kanału pub/sub kanał __sentinel __: Witam każdego mistrza i repliki, szukając nieznanych wartowników. Po wykryciu nowych wartowników, są one dodawane jako wartownicy tego mistrza.
- Wiadomości witam również pełna bieżąca konfiguracja głównego. Jeśli odbiorczy Sentinel ma konfigurację dla danego mistrza, który jest starszy niż otrzymany, natychmiast aktualizuje nową konfigurację.
- Przed dodaniem nowego wartownika do Master a Sentinel zawsze sprawdza, czy jest już wartownik z tym samym runidem lub tym samym adresem (IP i para portów). W takim przypadku wszystkie pasujące wartowniki są usuwane, a nowe dodane.
Sentinel ponownie konfiguracja instancji poza procedurą przełączania awaryjnego
Nawet gdy nie jest w toku awaryjnego, wartownicy zawsze będą próbować ustawić bieżącą konfigurację na monitorowanych instancjach. Konkretnie:
- Repliki (zgodnie z aktualną konfiguracją), które twierdzą, że są mistrzami, zostaną skonfigurowane jako repliki do replikacji z bieżącym głównym.
- Repliki podłączone do niewłaściwego mistrza, zostaną ponownie skonfigurowane do powtórzenia z właściwym mistrzem.
Aby Sentinels do rekonfiguracji repliki należy obserwować niewłaściwą konfigurację, która jest większa niż okres używany do nadawania nowych konfiguracji.
Zapobiega to Sentinelsowi z przestarzałą konfiguracją (na przykład dlatego, że po prostu dołączyły z partycji) spróbują zmienić konfigurację repliki przed otrzymaniem aktualizacji.
Zwróć również uwagę, w jaki sposób semantyka zawsze próba narzucenia bieżącej konfiguracji sprawia, że przełączanie awaryjne jest bardziej odporne na partycje:
- Mistrzowie nieudane są ponownie skonfigurowane jako repliki po powrocie dostępnych.
- Replicas podzielone podczas partycji są rekonfigurowane po osiągnięciu.
Ważną lekcją do zapamiętania w tej sekcji jest: Sentinel to system, w którym każdy proces zawsze będzie próbował narzucić ostatnią konfigurację logiczną na zestaw monitorowanych instancji.
Wybór repliki i priorytet
Kiedy instancja Sentinel jest gotowa do wykonania przełączania awaryjnego, ponieważ Mistrz jest w stanie Odown, a wartownik otrzymał upoważnienie do przełączania awaryjnego z większości znanych instancji Sentinel, należy wybrać odpowiednią replikę.
Proces wyboru repliki ocenia następujące informacje o replikach:
- Czas odłączenia od mistrza.
- Priorytet repliki.
- Przetworzone przesunięcie replikacji.
- Uruchom id.
Replika, która okazuje się być odłączona od mistrza przez ponad dziesięć razy skonfigurowaną limit czasu głównego (opcja w dół-milisekund), a czas, w którym mistrz nie jest również dostępny z punktu widzenia Sentinel wykonujący awaryjne przewagę, jest uważany za nie nadaje się do awarii i jest pominięty.
Mówiąc bardziej rygorystycznie, replika, której wyjście informacyjne sugeruje, że została odłączona od mistrza za więcej niż:
(Down-After-Milliiseconds * 10) + Miliseconds_since_master_is_in_sdown_state
Jest uważany za zawodny i jest całkowicie lekceważony.
Wybór repliki rozważa tylko repliki, które zdały powyższy test, i sortuje go na podstawie powyższych kryteriów, w następującej kolejności.
- Repliki są sortowane według prioryczności repliki, zgodnie z konfiguracją w Redis.plik conf z instancji Redis. Preferowany będzie niższy priorytet.
- Jeśli priorytet jest taki sam, przesunięcie replikacji przetworzone przez replikę jest sprawdzane, a replika, która otrzymała więcej danych z głównego, jest wybrana.
- Jeśli wiele replików ma ten sam priorytet i przetworzył te same dane z głównego, wykonuje się dalszą kontrolę, wybierając replikę z leksykograficznie mniejszym identyfikatorem biegu. Posiadanie niższego identyfikatora biegu nie jest prawdziwą zaletą dla repliki, ale jest przydatne, aby proces wyboru repliki bardziej deterministycznie, zamiast uciekać się do losowej repliki.
W większości przypadków priorytet repliki nie musi być ustawiany jawnie, aby wszystkie instancje używają tej samej wartości domyślnej. Jeśli istnieje szczególna preferencja niepowodzenia, należy ustalić priorytet repliki we wszystkich instancjach, w tym mistrzowie, ponieważ mistrz może stać się repliką w przyszłości-a następnie będzie potrzebować odpowiednich ustawień priorytetu repliki repliki.
Instancję Redis można skonfigurować ze specjalną priorytetą repliki zero, aby być Nigdy nie wybrano przez Sentinels jako nowy mistrz. Jednak skonfigurowana w ten sposób replika będzie nadal ponownie skonfigurowana przez Sentinels w celu powtórzenia z nowym mistrzem po przełączaniu awaryjnym, jedyną różnicą jest to, że nigdy nie stanie się samym mistrzem.
Algorytmy i wewnętrzne
W poniższych sekcjach zbadamy szczegóły zachowania Sentinel. Nie jest to ściśle potrzebne, aby użytkownicy byli świadomi wszystkich szczegółów, ale głębokie zrozumienie Sentinel może pomóc w wdrożeniu i obsłudze Sentinel w bardziej skuteczny sposób.
Kworum
Poprzednie sekcje wykazały, że każdy mistrz monitorowany przez Sentinel jest powiązany z skonfigurowanym kworum. Określa liczbę procesów Sentinel, które muszą zgodzić się na nieosiągalność lub warunek błędu mistrza, aby uruchomić przełączanie awaryjne.
Jednak po uruchomieniu przełączania awaryjnego, aby faktycznie wykonać przełączanie awaryjne, co najmniej większość wartowników musi upoważnić wartownika do przełączania awaryjnego. Sentinel nigdy nie wykonuje przełączania awaryjnego w partycji, w której istnieje mniejszość Sentinels.
Postarajmy się, aby wszystko było bardziej jasne:
- QUORUM: Liczba procesów Sentinel, które muszą wykryć warunek błędu, aby mistrz był oznaczony jako Odown.
- Przełączanie awaryjne jest wyzwalane przez Odown państwo.
- Po uruchomieniu przełączania awaryjnego Sentinel próbujący przełączanie awaryjnego musi poprosić o zezwolenie na większość wartowników (lub więcej niż większość, jeśli kworum jest ustawione na liczbę większą niż większość).
Różnica może wydawać się subtelna, ale w rzeczywistości jest dość prosta do zrozumienia i użycia. Na przykład, jeśli masz 5 instancji Sentinel, a kworum jest ustawione na 2, przełączanie awaryjne zostanie uruchomione, gdy tylko 2 wartownicy uważają, że mistrz nie jest osiągalny, jednak jeden z dwóch wartowników będzie mógł przełączyć się tylko wtedy, gdy uzyska zezwolenie co najmniej z 3 wartowników.
Jeśli zamiast tego kworum jest skonfigurowane do 5, wszystkie wartowniki muszą zgodzić się na temat stanu błędu głównego, a autoryzacja ze wszystkich wartowników jest wymagana do przełączania awaryjnego.
Oznacza to, że kworum można wykorzystać do dostrojenia Sentinel na dwa sposoby:
- Jeśli kworum jest ustawione na wartość mniejszą niż większość wartowników, które wdrażamy, w zasadzie uczyniamy Sentinel bardziej wrażliwym na mistrzowskie awarie, wywołując przełączanie awaryjne, gdy tylko nawet mniejszość Sentinels nie jest już w stanie rozmawiać z mistrzem.
- Jeśli kworum jest ustawione na wartość większą niż większość wartowników, sprawiamy, że Sentinel jest w stanie przełączyć się tylko wtedy, gdy istnieje bardzo duża liczba (większa niż większość) dobrze połączonych wartowników, które zgadzają.
Epoki konfiguracyjne
Sentinels wymagają zezwolenia z większości, aby rozpocząć przełączanie awaryjne z kilku ważnych powodów:
Kiedy wartość jest autoryzowana, dostaje wyjątkowy Epoka konfiguracyjna Dla mistrza to się nie skończyło. Jest to liczba, która zostanie użyta do wersji nowej konfiguracji po zakończeniu awaryjnego. Ponieważ większość zgodziła się, że dana wersja została przypisana do danego wartownika, żaden inny wartownik nie będzie mógł z niej korzystać. Oznacza to, że każda konfiguracja każdego przełączania awaryjnego jest wersja z unikalną wersją. Zobaczymy, dlaczego jest to takie ważne.
Ponadto wartownicy mają zasadę: jeśli wartownik zagłosował kolejnego wartownika na awaryjne mistrza, poczekaj trochę czasu, aby ponownie spróbować tego samego mistrza. To opóźnienie to 2 * czas awaryjny, który można skonfigurować w Sentinel.conf . Oznacza to, że Sentinels nie będzie próbował jednocześnie przełączyć tego samego mistrza, pierwszy, który poprosi o autoryzację.
Redis Sentinel gwarantuje żywotność nieruchomość, że jeśli większość wartowników będzie w stanie rozmawiać, ostatecznie zostanie zezworzony do przełączania awaryjnego.
Redis Sentinel również gwarantuje bezpieczeństwo właściwość, którą każdy wartownik awaryjny będzie ten sam mistrz za pomocą innego Epoka konfiguracyjna.
Propagacja konfiguracyjna
Gdy Sentinel będzie w stanie skutecznie przełączyć się na Master, zacznie nadawać nową konfigurację, aby pozostali Sentinels zaktualizowali swoje informacje o danym Master.
Aby przełączanie awaryjne uznano za skuteczne, wymaga to, aby wartownik był w stanie wysłać replikę No One Command do wybranej repliki, a przełącznik na Master został później zaobserwowany w wyjściu informacyjnym Master.
W tym momencie, nawet jeśli w toku jest w toku rekonfiguracja replików, przełączanie awaryjne jest uważane za udane, a wszystkie wartowniki są zobowiązane do rozpoczęcia zgłaszania nowej konfiguracji.
Sposób, w jaki propagowana jest nowa konfiguracja, jest powodem, dla którego potrzebujemy, aby każda przełączanie awaryjne Sentinel jest autoryzowane z innym numerem wersji (epoka konfiguracyjna).
Każdy wartownik ciągle nadawał swoją wersję konfiguracji mistrza za pomocą wiadomości Redis Pub/Sub, zarówno w Master, jak i we wszystkich replikach. W tym samym czasie wszyscy wartownicy czekają na wiadomości, aby zobaczyć, jaka jest konfiguracja reklamowana przez pozostałe Sentinels.
Konfiguracje są transmitowane w __sentinel __: Hello Pub/Sub Channel.
Ponieważ każda konfiguracja ma inny numer wersji, większa wersja zawsze wygrywa w mniejszych wersjach.
Na przykład konfiguracja Master MyMaster zaczyna od wszystkich wartowników, którzy wierzą, że Mistrz jest w 192 roku.168.1.50: 6379. Ta konfiguracja ma wersję 1. Po pewnym czasie Sentinel jest upoważniony do przełączania awaryjnego w wersji 2. Jeśli przełączanie awaryjne zakończy się sukcesem, zacznie nadawać nową konfigurację, powiedzmy 192.168.1.50: 9000, z wersją 2. Wszystkie pozostałe instancje zobaczą tę konfigurację i odpowiednio zaktualizują ich konfigurację, ponieważ nowa konfiguracja ma większą wersję.
Oznacza to, że Sentinel gwarantuje drugą właściwość żywotności: zestaw wartowników, którzy są w stanie komunikować się, zbiega się z tą samą konfiguracją z wyższym numerem wersji.
Zasadniczo, jeśli sieć jest partycjonowana, każda partycja zbiega się z wyższą konfiguracją lokalną. W szczególnym przypadku braku partycji istnieje pojedyncza partycja i każdy wartownik zgodzi się na konfigurację.
Spójność pod partycjami
Konfiguracje Redis Sentinel są ostatecznie spójne, więc każda partycja zbiega się z dostępną konfiguracją wyższej konfiguracji. Jednak w rzeczywistym systemie za pomocą Sentinel jest trzech różnych graczy:
- Instancje Redis.
- Instancje Sentinel.
- Klienci.
Aby zdefiniować zachowanie systemu, musimy rozważyć wszystkie trzy.
Poniżej znajduje się prosta sieć, w której znajdują się 3 węzły, z których każdy działa instancja Redis i instancja Sentinel:
+-------------+ |. Sentinel 1 | ----- Klient A | Redis 1 (m) | + -------------+ | |. + -------------+ | + ------------+ | Sentinel 2 | -----+-// ---- | Sentinel 3 | ----- Klient B | Redis 2 (S) | |. Redis 3 (M) | +-------------+ +------------+
W tym systemie pierwotnym stanem było to, że Redis 3 był mistrzem, podczas gdy Redis 1 i 2 były replikami. Partycja wystąpiła izolowanie starego mistrza. Sentinels 1 i 2 założyli przełączanie awaryjne promujące Sentinel 1 jako nowy mistrz.
Właściwości Sentinel gwarantują, że Sentinel 1 i 2 mają teraz nową konfigurację dla Master. Jednak Sentinel 3 nadal ma starą konfigurację, ponieważ żyje w innej partycji.
Wiemy, że Sentinel 3 będzie aktualizowany konfigurację, gdy partycja sieciowa zagoi się, jednak to, co stanie się podczas partycji, jeśli są klienci podzielone na stara mistrz?
Klienci nadal będą mogli napisać do Redis 3, starego mistrza. Kiedy partycja dołączy, Redis 3 zostanie przekształcony w replikę Redis 1, a wszystkie dane zapisane podczas partycji zostaną utracone.
W zależności od konfiguracji możesz chcieć, czy nie, ten scenariusz nastąpi:
- Jeśli używasz Redis jako pamięci podręcznej, może być przydatne, że klient B nadal jest w stanie napisać do starego mistrza, nawet jeśli jego dane zostaną utracone.
- Jeśli używasz Redis jako sklepu, nie jest to dobre i musisz skonfigurować system, aby częściowo zapobiec temu problemowi.
Ponieważ Redis jest asynchronicznie powtórzony, nie ma sposobu, aby całkowicie zapobiec utratę danych w tym scenariuszu, jednak możesz powiązać rozbieżność między Redis 3 i Redis 1 przy użyciu następującej opcji konfiguracji Redis:
Min-Replicas-to-Write 1 min-replicas-max-lag 10
Z powyższą konfiguracją (zobacz samozwańczy Redis.Przykład conf w rozkładu Redis, aby uzyskać więcej informacji) instancja Redis, podczas działania jako mistrz, przestanie akceptować zapisy, jeśli nie może napisać do co najmniej 1 repliki. Ponieważ replikacja jest asynchroniczna Nie możliwość pisania W rzeczywistości oznacza, że replika jest albo odłączona, albo nie wysyła nam asynchronicznych potwierdze.
Za pomocą tej konfiguracji Redis 3 w powyższym przykładzie stanie się niedostępny po 10 sekundach. Gdy partycja zagoi się, konfiguracja Sentinel 3 zbiega się z nową, a klient B będzie mógł przynieść prawidłową konfigurację i kontynuować.
Ogólnie Redis + Sentinel jako całość to ostatecznie spójny system gdzie jest funkcja scalania Ostatnie wygrywa, a dane ze starych mistrzów są odrzucane w celu powtórzenia danych bieżącego głównego, więc zawsze istnieje okno do utraty potwierdzonych zapisów. Wynika to z replikacji asynchronicznej Redis i odrzucającą naturę „wirtualnej” funkcji scalania systemu. Zauważ, że nie jest to ograniczenie samego Sentinel, a jeśli zorganizujesz przełączanie awaryjne za pomocą silnie spójnej replikowanej maszyny stanowej, te same właściwości nadal będą miały zastosowanie. Istnieją tylko dwa sposoby, aby uniknąć przegranej uznanych pisze:
- Użyj replikacji synchronicznej (i odpowiedniego algorytmu konsensusu, aby uruchomić komplikowaną maszynę do stanu).
- Użyj ostatecznie spójnego systemu, w którym można połączyć różne wersje tego samego obiektu.
Redis obecnie nie jest w stanie korzystać z żadnego z powyższych systemów i obecnie jest poza celami rozwoju. Istnieją jednak rozwiązanie wdrażające proxy „2” na sklepach Redis, takich jak SoundCloud Roshi lub Netflix Dynomit.
Sentinel Trwałe stan
Stan Sentinel jest utrzymywany w pliku konfiguracyjnym Sentinel. Na przykład za każdym razem, gdy odbierana jest nowa konfiguracja lub tworzona (lider Sentinels), dla master konfiguracja jest utrzymywana na dysku wraz z epoką konfiguracyjną. Oznacza to, że bezpieczne jest zatrzymanie i ponowne uruchomienie procesów Sentinel.
Tryb przechylania
Redis Sentinel jest silnie zależny od czasu komputera: na przykład, aby zrozumieć, czy dostępna jest instancja, pamięta czas najnowszej udanej odpowiedzi na polecenie ping i porównuje go z aktualnym czasem na zrozumienie, ile ma lat.
Jeśli jednak czas komputera zmienia się w nieoczekiwany sposób lub jeśli komputer jest bardzo zajęty lub z jakiegoś powodu zablokowany proces, Sentinel może zacząć zachowywać się w nieoczekiwany sposób.
Tryb pochylenia to specjalny tryb „ochrony”, w którym wartość może wejść, gdy wykryto coś dziwnego, które może obniżyć niezawodność systemu. Przerwanie timera Sentinel jest zwykle nazywane 10 razy na sekundę, więc spodziewamy się, że mniej więcej 100 milisekund padł między dwoma połączeniami z przerwaniem timera.
To, co robi Sentinel, to zarejestrować poprzedni raz, gdy wywołano przerwanie czasu i porównać go z bieżącym połączeniem: jeśli różnica czasu jest ujemna lub nieoczekiwanie duża (2 sekundy lub więcej), wprowadzany jest tryb przechylania (lub jeśli został już wprowadzony do wyjścia z przekładni w trybie pochylenia.
W trybie przechylania wartownik będzie nadal monitorować wszystko, ale:
- W ogóle przestaje działać.
- Zaczyna odpowiadać negatywnie na prośby Sentinel is-master-down-byd-by-addr, ponieważ możliwość wykrycia awarii nie jest już zaufana.
Jeśli wszystko wydaje się normalne przez 30 sekund, tryb pochylenia jest wychodzony.
W trybie Tilt Sentinel, jeśli wyślemy polecenie Info, możemy uzyskać następującą odpowiedź:
$ redis -cli -p 26379 127.0.0.1: 26379> Informacje (inne informacje z Sentinel Server pominęły.) # Sentinel Sentinel_masters: 1 Sentinel_Tilt: 0 Sentinel_Tilt_Since_Seconds: -1 Sentinel_Running_Scripts: 0 Sentinel_scripts_queue_length: 0 Sentinel_Simulate_Failure_flags: 0 Master0: name = MyMaster, Status = OK, adres = 127.0.0.1: 6379, niewolnicy = 0, wartownicy = 1
Pole „Sentinel_tilt_since_seconds” wskazuje, ile sekund Sentinel jest już w trybie przechyłu. Jeśli nie jest w trybie przechyłu, wartość wyniesie -1.
Zauważ, że w pewnym sensie tryb przechylenia można wymienić za pomocą monotonicznego interfejsu API zegara, które oferuje wiele jądra. Jednak nadal nie jest jasne, czy jest to dobre rozwiązanie, ponieważ obecny system pozwala uniknąć problemów w przypadku, gdy proces został po prostu zawieszony lub nie wykonywany przez harmonogram przez długi czas.
Uwaga na temat słowa niewolnika używanego na tej stronie Man: Począwszy od Redis 5, jeśli nie ze względu na kompatybilność wsteczną, projekt Redis nie używa już słowa niewolnik. Niestety w tym poleceniu słowo niewolnik jest częścią protokołu, więc będziemy w stanie usunąć takie zdarzenia tylko wtedy, gdy ten interfejs API zostanie naturalnie przestarzały.
Na tej stronie
To jest strona internetowa społeczna sponsorowana przez Redis Ltd. © 2023. Redis i logo kostki to zarejestrowane znaki towarowe Redis Ltd. Polityka warunków użytkowania i prywatności.