Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 658|Odgovoriti: 5

[Napitnine] .NET/C# procesi komunicirajo med gRPC in Unix domenskimi vtičnicami

[Kopiraj povezavo]
Objavljeno 2025-8-11 20:24:04 | | | |
Zahteve: Na istem strežniku procesi komunicirajo med seboj z anonimnimi cevovodi, imenovanimi cevovodi, datotekami za preslikavo pomnilnika, HTTP, TCP, standardnimi vhodno/izhodnimi tokovi itd. Včasih morajo strežniki namestiti več aplikacij, aplikacije pa lahko dejansko komunicirajo med seboj preko gRPC in Unix domenskih vtičnic.

pregled
.NET/C# NamedPipe-based komunikacija med procesi na osnovi NamedPipe [z izvorno kodo]
https://www.itsvse.com/thread-10628-1-1.html

.NET/C# procesi starš-otrok komunicirajo z uporabo MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html

.NET/C# procesi starš-otrok komunicirajo z uporabo standardnih vhodno/izhodnih tokov
https://www.itsvse.com/thread-10982-1-1.html

Unixove domenske vtičnice

Unix domenske vtičnice (UDS), lokalne vtičnice ali vtičnice za medprocesno komunikacijo (IPC) so komunikacijske končne točke, ki izmenjujejo podatke med procesi, ki tečejo v istem Unixu ali Unixu podobnem operacijskem sistemu.

Ime Unixova domenska vtičnica se nanaša na vrednost parametra domene, ki je bila prenesena funkciji, ki je ustvarila sistemski vir vtičnice. Izbrana je tudi ista komunikacijska domena. [ 1 ] AF_UNIXAF_LOCAL

Veljavne vrednosti parametrov za typeUDS so:

  • SOCK_STREAM (v primerjavi s TCP) – Uporablja se za pretočno usmerjene vtičnice
  • SOCK_DGRAM (v primerjavi z UDP) – podatkovno usmerjena vtičnica za ohranjanje meja sporočil (kot pri večini UNIX implementacij so UNIX domenski datagrami vedno zanesljivi in ne spreminjajo razporeda podatkovnih podatkov)
  • SOCK_SEQPACKET (v primerjavi s SCTP) – Zaporedne paketne vtičnice za povezave, ki ohranjajo meje sporočil in prenašajo sporočila v vrstnem redu pošiljanja


Orodje UDS je standardna komponenta operacijskega sistema POSIX.

Zakaj uporabljati Unix domenske vtičnice?

Unixovi domenski vtičniki omogočajo medprocesno komunikacijo na enem samem računalniku. Zakaj bi jih torej izbrali namesto TCP/IP? Na primer, v TCP/IP lahko uporabite loopback naslov (localhost) za komunikacijo med enim strežnikom. Zakaj bi jih na Windows izbrali namesto Windows Naming Pipelines?

Na splošno obstaja več razlogov, zakaj bi se za medprocesno komunikacijo odločili za uporabo UDS namesto TCP/IP:

  • Unixovi domenski vtičniki imajo običajno manjši režijski strošek in hitrejše prenosne hitrosti kot uporaba TCP/IP
  • TCP/IP vtičnice so omejen vir, medtem ko Unixove domenske vtičnice nimajo trdih omejitev
  • Unixovi domenski vtičniki so na voljo v datotečni obliki, zato je enostavno "odkriti" znane poti
  • Integracija z datotečnimi sistemi doda dodatno plast varnosti (če nimaš dostopa do poti do datoteke, ne moreš dostopati do socketa)


Prva točka je enostavna za razumevanje – hiter Google bo pokazal, da so UDS in TCP/IP testi vedno boljši od UDS, ker imajo ne le bistveno nižjo latenco, ampak tudi bistveno višjo prepustnost. To je predvsem zato, ker je UDS optimiziran za komunikacijo z istim strežnikom,Za IP komunikacijo mora localhost iti skozi IP sklad tako na strani pošiljatelja kot prejemnika

TCP/IP vtičnice so omejen vir; Hkrati lahko uporabljate največ 65.535 vtičnic. Če dodate težavo, je največje število vtičnic, ki TIME_WAIT dejansko na voljo, lahko precej manjše od te vrednosti. Povezava lokalnega gostitelja prav tako porablja vtičnice v tem bazenu. Uporaba UDS pametno preprečuje ta problem; Omogoča komunikacijo brez izčrpavanja TCP/IP vtičnic.

strežnik

Ustvarite nov .NET 8 konzolni projekt, spremenite SDK v Microsoft.NET.Sdk.Web in ga nastavite takole:

Greet.proto je konfiguriran takole:

Koda je naslednja:

Po začetku prevajanja, kot je prikazano spodaj:



odjemalec

Ustvarite nov .NET 8 konzolni projekt in se sklicujete na naslednje knjižnice:

Metoda klica vmesnika gRPC se pokliče 10-krat, vsak klic pa traja 200 milisekund, koda pa je naslednja:

Začnite projekt in po zaključku izvedbe, kot je prikazano na spodnji sliki:



Referenčni:

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.




Prejšnji:Jetson (1) Jetson Orin Nano Super Developer Kit razpakiran
Naslednji:Primerjava spletnega kontejnerja netty in tomcat v Spring Boot
 Najemodajalec| Objavljeno 2025-8-11 20:57:04 |
HttpClientnegRPCin Unix domensko komunikacijo preko socketov

strežnik

odjemalec

Kot je prikazano spodaj:

 Najemodajalec| Objavljeno 12. 8. 2025 ob 10:05:14 |
ProtocolType.Unspecified: Protokol ni določen, sistem pa ga samodejno izbere
 Najemodajalec| Objavljeno 12. 8. 2025 ob 11:02:41 |
C# test se lahko normalno poveže z UDS


 Najemodajalec| Objavljeno 16. 9. 2025 ob 15:26:30 |
Uporaba nginx za proxy Unix domenskih vtičnikov (Ni testirano
Konfiguracija je naslednja:

Dajte prednost UDS: Če je vaša storitev na istem računalniku kot Nginx in iščete visoko zmogljivost ter nizko zakasnitev, je UDS najboljša izbira.
 Najemodajalec| Objavljeno 16. 9. 2025 ob 17:11:05 |
Nginx reverse proxy php-fpm uporablja UDS za komunikacijo
https://www.itsvse.com/thread-11068-1-1.html
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com