- 18.08.2017
- 5 minute de citit
In acest articol
Afinitatea este un control care este furnizat in principal pentru a facilita tranzitia aplicatiilor monolitice mai mari in lumea cloud si a microserviciilor. De asemenea, este utilizat ca o optimizare pentru imbunatatirea performantei serviciilor, desi acest lucru poate avea efecte secundare.
Sa presupunem ca aduceti o aplicatie mai mare sau una care nu a fost conceputa doar cu gandul la microservicii, in Service Fabric (sau in orice mediu distribuit). Acest tip de tranzitie este comun. Incepeti prin ridicarea intregii aplicatii in mediul inconjurator, impachetarea acesteia si asigurarea ca functioneaza fara probleme. Apoi incepeti sa-l impartiti in diferite servicii mai mici, care vorbesc intre ele.
In cele din urma, puteti constata ca aplicatia intampina unele probleme. Problemele se incadreaza de obicei in una dintre aceste categorii:
- Unele componente X din aplicatia monolitica aveau o dependenta nedocumentata de componenta Y si tocmai ati transformat aceste componente in servicii separate. Deoarece aceste servicii ruleaza acum pe diferite noduri din cluster, sunt defecte.
- Aceste componente comunica prin (tevi denumite locale | memorie partajata | fisiere pe disc) si chiar trebuie sa poata scrie intr-o resursa locala partajata din motive de performanta chiar acum. Aceasta dependenta dura este eliminata mai tarziu, poate.
- Totul este in regula, dar se pare ca aceste doua componente sunt de fapt sensibile la conversatie / performanta. Cand le-au mutat in servicii separate, performanta generala a aplicatiei a scazut sau latenta a crescut. Ca urmare, aplicatia generala nu indeplineste asteptarile.
In aceste cazuri, nu vrem sa ne pierdem munca de refactorizare si nu vrem sa ne intoarcem la monolit. Ultima conditie poate fi chiar de dorit ca o simpla optimizare. Cu toate acestea, pana cand vom putea reproiecta componentele pentru a functiona in mod natural ca servicii (sau pana cand vom putea rezolva asteptarile de performanta in alt mod), vom avea nevoie de un anumit sentiment de localitate.
Ce sa fac? Ei bine, ai putea incerca sa activezi afinitatea.
Cum se configureaza afinitatea
Pentru a configura afinitatea, definiti o relatie de afinitate intre doua servicii diferite. Va puteti gandi la afinitate ca „indreptand” un serviciu catre altul si spunand „Acest serviciu poate rula numai acolo unde se executa acel serviciu”. Uneori, ne referim la afinitate ca la o relatie parinte / copil (unde indreptati copilul catre parinte). Afinitatea se asigura ca replicile sau instantele unui serviciu sunt plasate pe aceleasi noduri ca cele ale altui serviciu.
ServiceCorrelationDescription affinityDescription = new ServiceCorrelationDescription (); affinityDescription.Scheme = ServiceCorrelationScheme.Affinity; affinityDescription.ServiceName = new Uri (“fabric: / otherApplication / parentService”); serviceDescription.Correlations.Add (affinityDescription); asteapta fabricClient.ServiceManager.CreateServiceAsync (serviceDescription);
Nota
Un serviciu pentru copii poate participa doar la o singura relatie de afinitate. Daca doriti ca copilul sa fie afinitizat la serviciile pentru doi parinti simultan, aveti cateva optiuni:
- Inversati relatiile (aveti punctul parentService1 si parentService2 la serviciul copil curent) sau
- Desemnati unul dintre parinti ca hub prin conventie si solicitati toate serviciile la acel serviciu.
Comportamentul de plasare rezultat in cluster ar trebui sa fie acelasi.
Optiuni de afinitate diferite
Afinitatea este reprezentata printr-una din mai multe scheme de corelatie si are doua moduri diferite. Cel mai obisnuit mod de afinitate este ceea ce numim NonAlignedAffinity. In NonAlignedAffinity, replicile sau instantele diferitelor servicii sunt plasate pe aceleasi noduri. Celalalt mod este AlignedAffinity. Afinitatea aliniata este utila numai cu servicii de stare. Configurarea a doua servicii de stare pentru a avea o afinitate aliniata asigura faptul ca elementele primare ale acestor servicii sunt plasate pe aceleasi noduri unul ca celalalt. De asemenea, face ca fiecare pereche de secundare pentru acele servicii sa fie plasate pe aceleasi noduri. De asemenea, este posibil (desi mai putin frecvent) sa configurati NonAlignedAffinity pentru servicii cu stare. Pentru NonAlignedAffinity, replicile diferite ale celor doua servicii stateful ar rula pe aceleasi noduri, dar primarele lor ar putea ajunge pe noduri diferite.
Cel mai bun efort dorit
O relatie de afinitate este cel mai bun efort. Nu ofera aceleasi garantii de colocare sau fiabilitate pe care le ofera rularea in acelasi proces executabil. Serviciile intr-o relatie de afinitate sunt in mod fundamental entitati diferite care pot esua si pot fi mutate independent. O relatie de afinitate s-ar putea rupe, desi aceste pauze sunt temporare. De exemplu, limitarile de capacitate pot insemna ca doar unele dintre obiectele de serviciu din relatia de afinitate se pot potrivi pe un nod dat. In aceste cazuri, chiar daca exista o relatie de afinitate, aceasta nu poate fi aplicata din cauza celorlalte constrangeri. Daca este posibil sa se faca acest lucru, incalcarea este corectata automat ulterior.
Lanturi vs. stele
Today the Cluster Resource Manager isn’t able to model chains of affinity relationships. What this means is that a service that is a child in one affinity relationship can’t be a parent in another affinity relationship. If you want to model this type of relationship, you effectively have to model it as a star, rather than a chain. To move from a chain to a star, the bottommost child would be parented to the first child’s parent instead. Depending on the arrangement of your services, you may have to do this multiple times. If there’s no natural parent service, you may have to create one that serves as a placeholder. Depending on your requirements, you may also want to look into Application Groups.
Un alt lucru de remarcat despre relatiile de afinitate de astazi este ca acestea sunt directionale in mod implicit. Aceasta inseamna ca regula afinitatii impune doar faptul ca copilul a fost plasat la parinte. Nu se asigura ca parintele este situat impreuna cu copilul. Prin urmare, daca exista o incalcare a afinitatii si pentru a corecta incalcarea din anumite motive, nu este fezabil sa mutati copilul in nodul parintelui, atunci – chiar daca mutarea parintelui in nodul copilului ar fi corectat incalcarea – parintele nu va fi mutat in nodul copilului. Setarea configuratiei MoveParentToFixAffinityViolation la adevarat ar elimina directionalitatea. De asemenea, este important sa retineti ca relatia de afinitate nu poate fi perfecta sau aplicata instantaneu, deoarece diferite servicii au cicluri de viata diferite si pot esua si se pot deplasa independent. De exemplu, sa „ Se spune ca parintele esueaza brusc catre un alt nod, deoarece sa prabusit. Cluster Resource Manager si Failover Manager se ocupa mai intai de failover, intrucat mentinerea serviciilor sus, consistente si disponibile este prioritatea. Dupa finalizarea reluarii, relatia de afinitate este intrerupta, dar Managerul de resurse cluster considera ca totul este in regula pana cand observa ca copilul nu este localizat cu parintele. Aceste tipuri de verificari se efectueaza periodic. Mai multe informatii despre modul in care Managerul de resurse de cluster evalueaza constrangerile sunt disponibile in acest articol, iar acesta vorbeste mai multe despre cum sa configurati cadenta pe care sunt evaluate aceste constrangeri. si disponibil este prioritatea. Dupa finalizarea reluarii, relatia de afinitate este intrerupta, dar Managerul de resurse cluster considera ca totul este in regula pana cand observa ca copilul nu este localizat cu parintele. Aceste tipuri de verificari se efectueaza periodic. Mai multe informatii despre modul in care Managerul de resurse de cluster evalueaza constrangerile sunt disponibile in acest articol, iar acesta vorbeste mai multe despre modul de configurare a cadentei pe care sunt evaluate aceste constrangeri. si disponibil este prioritatea. Dupa finalizarea reluarii, relatia de afinitate este intrerupta, dar Managerul de resurse cluster considera ca totul este in regula pana cand observa ca copilul nu este localizat cu parintele. Aceste tipuri de verificari se efectueaza periodic. Mai multe informatii despre modul in care Managerul de resurse de cluster evalueaza constrangerile sunt disponibile in acest articol, iar acesta vorbeste mai multe despre modul de configurare a cadentei pe care sunt evaluate aceste constrangeri.
Suport de partitionare
Ultimul lucru pe care trebuie sa-l observati despre afinitate este ca relatiile de afinitate nu sunt acceptate acolo unde parintele este partitionat. Serviciile parinte partitionate pot fi acceptate in cele din urma, dar astazi nu este permis.
Pasii urmatori
- Pentru mai multe informatii despre configurarea serviciilor, aflati despre configurarea serviciilor
- Pentru a limita serviciile la un set mic de masini sau pentru a agrega incarcatura de servicii, utilizati Grupuri de aplicatii
deepthroat italian xxx telecamera nascosta
contessa porno xxx telecamere nascoste
troie cento per cento xxx tette enormi
vittoria risi casting xxx tette grandi
angeli e demoni torrent xxx torino
la pugliese porn xxx tre
centoxcento orgia xxx valentina
porn italian hd xxx video streaming
roberta gemma new porn xxx videos italia
cento per cento tv streaming xxx videos italiani
siffredi academy video xxx vittoria risi
cazzoni duri xxx vogl
felicitas porno xxx voglio
trans centoxcento xxx watch hd
troie terni xxx watch porn
la maestra analfabeta lo prende in culo xxx www xxx
lady blue porn xxx xxx com
porn topic xxx zoccole
francesca di caprio xxx xxxcentoxcento
italain porn xxxitalian








