Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 57382|Atbildi: 3

[ASP.NET] ASP.NET Core (pieci) ir balstīts uz CAP sadalītajiem darījumiem

[Kopēt saiti]
Publicēts 2021-3-17 18:12:50 | | | |
KLP principi

CAP princips, kas pazīstams arī kā CAP teorēma, attiecas uz konsekvenci, pieejamību un sadalījuma pielaidi sadalītā sistēmā. KLP princips nosaka, ka šie trīs elementi vienlaikus var sasniegt tikai divus punktus.Nav iespējams lietot visus trīs vienlaicīgi

2PC &&3PC izplatīto darījumu
https://www.itsvse.com/thread-9591-1-1.html

KLP principa būtība ir vai nu AP, KP vai AC, bet KLP nav. Ja sadalītajā sistēmā nav datu kopijas, tad sistēmai jāatbilst stingras konsekvences nosacījumam, jo ir tikai unikāli dati, nebūs datu neatbilstības, šobrīd ir divi elementi C un P, bet, ja sistēmai ir tīkla nodalījuma nosacījums vai dīkstāve, tas neizbēgami novedīs pie tā, ka daži dati nav pieejami, un pieejamības nosacījumu nevar izpildīt, tas ir, šajā gadījumā tiek iegūta CP sistēma, betKLP nevar apmierināt vienlaicīgi

Pārskats:

ASP.NET Core(4) filtra vienotā ModelState modeļa validācija
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Dinamiski izveidojiet instances, izmantojot ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET kodols (2) Restartējiet lietojumprogrammu pēc koda
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) izmanto Redis kešatmiņu
https://www.itsvse.com/thread-9393-1-1.html


DotNetCore.CAP

CAP ir notikumu kopne un ieviešana izkliedētā sistēmā (SOA, MicroService).Galīgā konsekvence(Distributed Transactions) ir atvērtā koda C# bibliotēka, kas ir viegla, augstas veiktspējas un viegli lietojama.

GitHub adrese:Hipersaites pieteikšanās ir redzama.

Dotnet CAP ir visas Event Bus funkcijas, un CAP nodrošina racionalizētāku veidu, kā rīkoties ar publicēšanu / abonēšanu EventBus.

MediatR ir procesa ziņojumu abonēšanas un publicēšanas sistēma, kas nodrošina sūtīšanas metodi publicēšanai vienam apdarinātājam un publicēšanas metodi publicēšanai vairākiem apdarinātājiem, kas ir ļoti ērti lietojama. Pašlaik .NET Framework4.5, . NET Stardand1.3、. NET Stardand 2.0 un citas versijas, kuras var izmantot dažādās platformās.

ASP.NET Core izmanto MediatR starpnieka modeli
https://www.itsvse.com/thread-9272-1-1.html

Arhitektūras priekšskatījums



CAP atbalsta ziņojumu rindas, piemēram, Kafka, RabbitMQ, AzureServiceBus, AmazonSQS utt., un CAP nodrošina paplašinājumus Sql Server, MySql, PostgreSQL un MongoDB kā datu bāzes krātuvi.

Šajā rakstā RabbitMQ un SQL Server tiek izmantoti kā ziņojumu rindas un krātuve.

Instalējiet RabbitMQ

Konkrētas instalēšanas pamācības, lūdzu, skatiet:

【Praktiskā cīņa】 RabbitMQ instalēšanas apmācība operētājsistēmā Windows
https://www.itsvse.com/thread-4630-1-1.html

【Prakse】 RabbitMQ instalē tīmekļa pārvaldības spraudni
https://www.itsvse.com/thread-4631-1-1.html
Konta pievienošana arī tiek izlaista, lūdzu, skatiet:

【Prakse】 rabbitMQ konsole, lai pievienotu konta informāciju
https://www.itsvse.com/thread-4655-1-1.html
Es pats pievienoju testa kontu un ierobežoju virtuālos saimniekus, kā parādīts zemāk:



Pretējā gadījumā kļūda būs šāda:

ACCESS_REFUSED - Pieteikšanās tika atteikta, izmantojot autentifikācijas mehānismu PLAIN. Sīkāku informāciju skatiet brokera žurnālfailā.

Neviens no norādītajiem galapunktiem nebija sasniedzams

.NET Core integrē CAP

Vispirms izveidojiet jaunu ASP.NET Core projektu, kas ir gan sūtītājs, gan saņēmējs. Izmantojiet komandu nuget, lai instalētu pakotni šādi:

Startēšanas laikā konfigurējiet pakalpojuma metodi ConfigureServices šādi:

Jūs varat apmeklēt vietni / cap adresi, lai apskatītu informācijas paneli, kā parādīts zemāk:



Datu noturība: Cap willAutomātiska izveide"Publicēts" un "Saņemts" ir divas lokālās datu bāzes tabulas

IZVEIDOT TABULU [vāciņš]. [Publicēts] (
        [Id] [bigint] NAV NULLE,
        [Versija] [nvarchar] (20) NAV NULLE,
        [Vārds] [nvarchar] (200) NAV NULLE,
        [Saturs] [nvarchar] (maks.) NULLE,
        [Atkārto] [int] NAV NULLE,
        [Pievienots] [datums2] (7) NAV NULLE,
        [Beidzas] [datums2] (7) NULLE,
        [Statusa nosaukums] [nvarchar] (50) NAV NULLE,
IEROBEŽOJUMS [PK_cap. Publicēts] PRIMĀRĀS ATSLĒGAS KLASTERIS
(
        [Id] ASC
)AR (PAD_INDEX = IZSLĒGTS, STATISTICS_NORECOMPUTE = IZSLĒGTS, IGNORE_DUP_KEY = IZSLĒGTS, ALLOW_ROW_LOCKS = IESLĒGTS, ALLOW_PAGE_LOCKS = IESLĒGTS) UZ [PRIMĀRAIS]
) PAR [PRIMĀRO] TEXTIMAGE_ON [PRIMĀRO]
IET
IZVEIDOT TABULU [vāciņš]. [Saņemts] (
        [Id] [bigint] NAV NULLE,
        [Versija] [nvarchar] (20) NAV NULLE,
        [Vārds] [nvarchar] (200) NAV NULLE,
        [Grupa] [nvarchar] (200) NULLE,
        [Saturs] [nvarchar] (maks.) NULLE,
        [Atkārto] [int] NAV NULLE,
        [Pievienots] [datums2] (7) NAV NULLE,
        [Beidzas] [datums2] (7) NULLE,
        [Statusa nosaukums] [nvarchar] (50) NAV NULLE,
IEROBEŽOJUMS [PK_cap. Saņemts] PRIMĀRĀ ATSLĒGA SAGRUPĒTA
(
        [Id] ASC
)AR (PAD_INDEX = IZSLĒGTS, STATISTICS_NORECOMPUTE = IZSLĒGTS, IGNORE_DUP_KEY = IZSLĒGTS, ALLOW_ROW_LOCKS = IESLĒGTS, ALLOW_PAGE_LOCKS = IESLĒGTS) UZ [PRIMĀRAIS]
) PAR [PRIMĀRO] TEXTIMAGE_ON [PRIMĀRO]
IET


HomeController kontroliera metode ir šāda:

Kad lietotājs veiksmīgi reģistrējas, tiks nosūtīti 3 ziņojumi ar dažādām tēmām, un pēc tam abonents tos patērēs.

Kad KLP sāksies, tā izveidos noklusējuma patērētāju grupu, ja vairāki patērētāji no vienas patērētāju grupas patērēs vienu un to pašu tēmu,Tiks izpildīts tikai viens patērētājs。 Gluži pretēji,Ja visi patērētāji ir dažādās patērētāju grupās, visi patērētāji tiek izpildīti

Izveidojot jaunu .NET Core konsoles projektu, kā abonents (patērētājs) vai atsaucoties uz pakotni, informācijas paneli var ignorēt.

Ja tas atrodas Pārzinis, pievienojiet [CapSubscribe("")], lai abonētu attiecīgos ziņojumus.

Ja jūsu metode nav kontrollerī, tad klasei, kuru abonējat, ir jāpārmanto ICapSubscribe un pēc tam jāpievieno tags [CapSubscribe("")].

Kods ir šāds:

Atveriet abonementa klientu un mēģiniet piekļūt http://localhost:28116/Home/UserRegister, lai nosūtītu ziņojumus, efekts ir šāds:



Tiek iedarbināta gan konsole, gan kontroliera uztvērējs, kā parādīts zemāk redzamajā attēlā:



Mēģiniet manuāli izmest izņēmumu ziņojuma saņemšanas metodē, kods ir šāds:

CAP automātiski mēģinās atkārtot metodi,Atkārtoto mēģinājumu skaits pēc neveiksmes pēc noklusējuma ir 50, un atkārtoto mēģinājumu intervāls pēc neveiksmes pēc noklusējuma ir 60 sekundes, kā parādīts attēlā:



Sistēma nevar būt 100% pārliecināta, ka ziņojums tiek izpildīts tikai vienu reiziTāpēc dažos galvenajos scenārijos ziņojuma puse pievērš uzmanību biznesa deduplikācijai metodes ieviešanas procesā.

Saskarnes idempotences jautājumi
https://www.itsvse.com/thread-6010-1-1.html

Visbeidzot, pievienojiet avota kodu:

Tūristi, ja vēlaties redzēt šīs ziņas slēpto saturu, lūdzuAtbildi






Iepriekšējo:Markdown sintakses CSV tiešsaistes konvertēšana
Nākamo:HttpClient POST tieši, lai nosūtītu baitu baitu (gzip) saspiešanas pieprasījumus
Publicēts 2021-3-18 18:11:20 |
Nāciet un paskatieties, paldies, ka dalījāties
Publicēts 2021-9-22 20:42:18 |
Iemācieties mācīties...
Publicēts 2021-12-31 15:08:21 |
Mācīšanās
Ļoti labi, ļoti jauki
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com