Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 13217|Odpowiedź: 1

Problemy z idempotencją interfejsu

[Skopiuj link]
Opublikowano 04.12.2018 13:29:37 | | |
【Opis problemu】
Gdy użytkownicy korzystają z aplikacji, strona jest bardzo zablokowana i klikają losowo, ponieważ interfejs nie wykonuje powtarzających się zgłoszeń, pojawia się kilka identycznych żądań; na warstwie usługowej jeden wątek nie wstawia się kompletny, a drugi sprawdza "pusty". Więc też włożyłem jeden. Początkowo każdy miał jeden, ale sprzedawca miał trzy, co skutkowało błędami logiki biznesowej. W przypadku przetwarzania złośliwych zgłoszeń można to zrobić w części front-endowej, a w części back-endowej mogą być dostępne dojrzałe rozwiązania.

【Rozwiązanie】1. Użycie ograniczeń jednoznaczności do rozwiązania problemu idempotencji transakcji, ustalenie ograniczeń unikalności, a jeśli wystąpi scenariusz powtarzających się commitów, wyjątki od ograniczeń jednoznaczności zostaną wprowadzone na poziomie bazy danych, a logika biznesowa nie zostanie zniszczona. Dopuszczalne są również ograniczenia jednoznaczności dotyczące składania wielu pól.
Logowanie do linku jest widoczne.

Powyższe ma na celu wprowadzenie ustawień antyduplikacyjnych na poziomie bazy danych.

2. Realizuj ustawienia antyduplikacyjne na poziomie kodu. Często mówi się, że ograniczenie jednoznaczności bazy danych wpływa na efektywność wprowadzania danych, ponieważ każde wstawianie wymaga oceny na poziomie bazy danych. Dlatego, patrząc na poziom kodu, powszechną praktyką na poziomie kodu jest najpierw zaznaczenie, a następnie wstawienie, ale jeśli wystąpi duży scenariusz współbieżności, nadal będą powtarzać się zatwierdzenia. Możesz dodać synchronizację do kodu logicznego, tak aby w scenariuszach o dużej równobieżności najpierw zaznaczyć zaznaczenie, a potem wstawić w życie. Jednak efektywność nie jest wysoka i równoległość staje się szeregowa. Można zastosować mechanizm zamka DCL. (Czy zauważyłeś, że metoda tworzenia pojedynczego obiektu w trybie kopiowania jest bardzo podobna – najpierw oceń, czy obiekt istnieje, jeśli nie istnieje, stwórz go, w przeciwnym razie nie tworz go), naturalny mechanizm blokady DCL jest bardziej wydajny.

#分布式锁
Do rozwiązania problemu można również stosować rozproszone zamki, powszechnie stosowane przez Redis i Zookeeper. Ta sekcja wyjaśnia, jak implementować rozproszone blokady za pomocą Redis.
W Redis istnieje operacja setNx, jeśli nie istnieje, jest to wartość ustalona i zwracana jest 1. Jeśli istnieje, nie jest ustawiony i zwraca 0.
Wykorzystując funkcję jednowątkowej Redis, scena o wysokiej równocześności jest zamieniana w szeregowy przez kolejkę wiadomości.
Jednak w rozproszonych zamkach są pewne pułapki, więc musisz uważać.
Logowanie do linku jest widoczne.
3. Mechanizm MVCC?

3.1 Czym jest mechanizm MVCC?
MVCC to mechanizm kontroli współbieżności wielowersyjnej.

3.2 Jakie problemy można rozwiązać?
Mechanizm blokujący może kontrolować operacje równoległe, ale jego narzut jest duży, a MVCC może w większości przypadków zastąpić zamki na poziomie rzędów, co może zmniejszyć narzut systemu i poprawić wydajność.

Logowanie do linku jest widoczne.

4. Istnieje także problem idempotencji w komunikatach

Na przykład, jak zapobiec powtarzającemu się konsumowaniu wiadomości?

W middleware wiadomości w MQ muszą one być zrozumiane i zrozumiane.




Poprzedni:Fryzjerstwo Ucz się fryzjerstwa – przyjdź i zobacz
Następny:Historia rodzicielska Wideo Historia rodzicielska Audio Książka obrazkowa Kolekcja wiedzy o rodzicach
 Ziemianin| Opublikowano 17.03.2021 10:27:09 |
UprawnieniaW programowaniu operacja idempotentna charakteryzuje się tym, że jej dowolne wielokrotne wykonania mają taki sam efekt jak pojedyncze wykonanie.
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com