Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 57382|Odpoveď: 3

[ASP.NET] ASP.NET Core (päť) je založený na distribuovaných transakciách podľa CAP

[Kopírovať odkaz]
Zverejnené 17. marca 2021 o 18:12:50 | | | |
Princípy CAP

Princíp CAP, známy aj ako CAP veta, sa vzťahuje na konzistenciu, dostupnosť a toleranciu rozdelenia v distribuovanom systéme. Princíp CAP hovorí, že tieto tri prvky môžu dosiahnuť len dva body naraz.Nie je možné brať všetky tri naraz

2PC &&3PC distribuovaných transakcií
https://www.itsvse.com/thread-9591-1-1.html

Podstatou princípu CAP je buď AP, CP alebo AC, ale CAP neexistuje. Ak v distribuovanom systéme nie je kópia dát, systém musí spĺňať podmienku silnej konzistencie, pretože ide len o jedinečné dáta, nebude žiadna nekonzistencia údajov, v tomto čase sú prítomné dva prvky C a P, ale ak má systém podmienku rozdelenia siete alebo výpadok, nevyhnutne to povedie k tomu, že niektoré dáta budú neprístupné a podmienka dostupnosti nemôže byť splnená, teda v tomto prípade sa dosiahne CP systém, aleCAP nemožno uspokojiť súčasne

Revízia:

ASP.NET Core(4) filter zjednotený validácia modelu ModelState
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Jadro (iii) Dynamicky vytvárať inštancie pomocou ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Reštartovať aplikáciu pomocou kódu
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) používa Redis caching
https://www.itsvse.com/thread-9393-1-1.html


DotNetCore.CAP

CAP je zbernica udalostí a implementácia v distribuovanom systéme (SOA, MicroService).Konečná konzistencia(Distributed Transactions) je open-source C# knižnica, ktorá je ľahká, výkonná a ľahko použiteľná.

GitHub adresa:Prihlásenie na hypertextový odkaz je viditeľné.

Dotnet CAP má všetky funkcie Event Bus a CAP poskytuje prehľadnejší spôsob spracovania publikovania a prihlásenia sa do EventBusu.

MediatR je rámec pre predplatné a publikovanie správ v procese, ktorý poskytuje metódu Send pre publikovanie jednému handlerovi a metódu Publish pre publikovanie viacerým handlerom, čo je veľmi pohodlné na používanie. V súčasnosti .NET Framework4.5, . NET Stardand1.3、. NET Stardand 2.0 a ďalšie verzie, ktoré je možné používať naprieč platformami.

ASP.NET Core používa model sprostredkovateľa MediatR
https://www.itsvse.com/thread-9272-1-1.html

Náhľad architektúry



CAP podporuje fronty správ ako Kafka, RabbitMQ, AzureServiceBus, AmazonSQS a podobne, a CAP poskytuje rozšírenia pre Sql Server, MySql, PostgreSQL a MongoDB ako databázové úložisko.

Tento článok používa RabbitMQ a SQL Server ako fronty správ a úložisko.

Nainštalujte RabbitMQ

Pre konkrétne inštalačné návody si pozrite na:

【Praktický boj】Inštalačný tutoriál RabbitMQ pod Windows
https://www.itsvse.com/thread-4630-1-1.html

【Practice】RabbitMQ inštaluje plugin na správu webu
https://www.itsvse.com/thread-4631-1-1.html
Pridanie účtu je tiež vynechané, prosím, pozrite si:

【Practice】rabbitMQ konzola na pridanie informácií o účte
https://www.itsvse.com/thread-4655-1-1.html
Testovací účet a obmedzenie virtuálnych hostiteľov som pridal sám, ako je uvedené nižšie:



Inak bude chyba nasledovná:

ACCESS_REFUSED - Prihlásenie bolo zamietnuté pomocou autentifikačného mechanizmu PLAIN. Podrobnosti nájdete v logfile makléra.

Žiadny zo špecifikovaných koncových bodov nebol dosiahnuteľný

.NET Core integruje CAP

Najprv vytvorte nový ASP.NET Core projekt, ktorý je zároveň odosielateľom aj prijímateľom. Použite príkaz nuget na inštaláciu balíka takto:

Pri štarte nakonfigurujte metódu služby ConfigureServices nasledovne:

Môžete navštíviť webovú stránku / cap adresu a pozrieť si dashboard, ako je uvedené nižšie:



Pretrvávanie dát: Cap budeAutomatické vytváranie"Publikované" a "Prijaté" sú dve lokálne databázové tabuľky

VYTVORIŤ TABUĽKU [cap]. [Publikované] (
        [Id] [bigint] NIE NULL,
        [Verzia] [nvarchar] (20) NIE NULOVÁ,
        [Meno] [nvarchar] (200) NIE NULOVÁ,
        [Obsah] [nvarchar] (Max) NULL,
        [Skúša] [int] NIE NULL,
        [Pridané] [datetime2] (7) NIE NULL,
        [ExpiresAt] [datetime2] (7) NULL,
        [StatusName] [nvarchar] (50) NIE NULOVÁ,
OBMEDZENIE [PK_cap. Publikované] PRIMÁRNY KĽÚČ ZOSKUPENÝ
(
        [Id] ASC
)KDE (PAD_INDEX = VYPNUTÉ, STATISTICS_NORECOMPUTE = VYPNUTÉ, IGNORE_DUP_KEY = VYPNUTÉ, ALLOW_ROW_LOCKS = ZAPNUTÉ, ALLOW_PAGE_LOCKS = ZAPNUTÉ) ZAPNUTÉ [PRIMÁRNE]
) V [PRIMÁRKE] TEXTIMAGE_ON [PRIMÁRKY]
CHOĎ
VYTVORIŤ TABUĽKU [cap]. [Prijaté] (
        [Id] [bigint] NIE NULL,
        [Verzia] [nvarchar] (20) NIE NULOVÁ,
        [Meno] [nvarchar] (200) NIE NULOVÁ,
        [Skupina] [nvarchar] (200) NULL,
        [Obsah] [nvarchar] (Max) NULL,
        [Skúša] [int] NIE NULL,
        [Pridané] [datetime2] (7) NIE NULL,
        [ExpiresAt] [datetime2] (7) NULL,
        [StatusName] [nvarchar] (50) NIE NULOVÁ,
OBMEDZENIE [PK_cap. prijaté] PRIMÁRNY KĽÚČ ZOSKUPENÝ
(
        [Id] ASC
)KDE (PAD_INDEX = VYPNUTÉ, STATISTICS_NORECOMPUTE = VYPNUTÉ, IGNORE_DUP_KEY = VYPNUTÉ, ALLOW_ROW_LOCKS = ZAPNUTÉ, ALLOW_PAGE_LOCKS = ZAPNUTÉ) ZAPNUTÉ [PRIMÁRNE]
) V [PRIMÁRKE] TEXTIMAGE_ON [PRIMÁRKY]
CHOĎ


Metóda ovládača HomeController je nasledovná:

Keď sa používateľ úspešne zaregistruje, odošlú sa 3 správy s rôznymi témami, ktoré potom odberateľ spotrebuje.

Keď CAP začne, vytvorí predvolenú skupinu spotrebiteľov, ak viacerí spotrebitelia z tej istej skupiny konzumujú tú istú správu o téme,Bude popravený len jeden spotrebiteľ。 Naopak,Ak sú spotrebitelia všetci v rôznych spotrebiteľských skupinách, všetci spotrebitelia sú popravení

Pri vytváraní nového .NET Core konzolového projektu, ako predplatiteľovi (spotrebiteľ) alebo odkazovaní na balík, dashboard môže byť ignorovaný.

Ak je v Controlleri, pridajte [CapSubscribe("")] priamo, aby ste sa prihlásili na odber príslušných správ.

Ak vaša metóda nie je v Controlleri, trieda, ktorej sa prihlasujete, musí zdediť ICapSubscribe a potom pridať značku [CapSubscribe("")].

Kód je nasledovný:

Otvorte predplatné klienta a skúste sa dostať http://localhost:28116/Home/UserRegister na odoslanie správ, efekt je nasledovný:



Konzola aj prijímač ovládača sú spustené, ako je znázornené na obrázku nižšie:



Skúste manuálne vyhodiť výnimku v metóde prijímajúcej správy, kód je nasledovný:

CAP automaticky skúša metódu znova,Počet opakovaní po neúspechu je predvolene 50 a interval opakovaných pokusov po neúspechu je štandardne 60 sekúnd, ako je znázornené na obrázku nižšie:



Framework si nemôže byť 100% istý, že správa sa vykoná iba razPreto v niektorých kľúčových scenároch strana správ venuje pozornosť obchodnej deduplikácii počas implementácie metódy.

Problémy s idempotenciou rozhrania
https://www.itsvse.com/thread-6010-1-1.html

Nakoniec pripojte zdrojový kód:

Turisti, ak chcete vidieť skrytý obsah tohto príspevku, prosím.Odpoveď






Predchádzajúci:Online prevod syntaxe Markdown v CSV
Budúci:HttpClient POST priamo na odosielanie požiadaviek na kompresiu bajtových bajtov (gzip)
Zverejnené 18.3.2021 o 18:11:20 |
Príďte sa pozrieť, ďakujem za zdieľanie
Zverejnené 2021-9-22 20:42:18 |
Nauč sa učiť...
Zverejnené 31.12.2021 15:08:21 |
Učenie
Veľmi dobre, veľmi pekné
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com