Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 658|Απάντηση: 5

[Συμβουλές] Οι διεργασίες .NET/C# επικοινωνούν μεταξύ των υποδοχών τομέα gRPC και Unix

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2025-8-11 20:24:04 | | | |
Απαιτήσεις: Στον ίδιο διακομιστή, οι διεργασίες επικοινωνούν μεταξύ τους χρησιμοποιώντας ανώνυμους αγωγούς, επώνυμους αγωγούς, αρχεία αντιστοίχισης μνήμης, HTTP, TCP, τυπικές ροές εισόδου/εξόδου κ.λπ. Μερικές φορές οι διακομιστές πρέπει να αναπτύξουν πολλές εφαρμογές και οι εφαρμογές μπορούν πραγματικά να επικοινωνούν μεταξύ τους χρησιμοποιώντας υποδοχές τομέα gRPC και Unix.

αναθεώρηση
.NET/C# Επικοινωνία μεταξύ διεργασιών NamedPipe που βασίζεται σε NamedPipe [με πηγαίο κώδικα]
https://www.itsvse.com/thread-10628-1-1.html

Οι διεργασίες γονέα-παιδιού .NET/C# επικοινωνούν χρησιμοποιώντας το MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html

Οι διεργασίες γονέα-παιδιού .NET/C# επικοινωνούν χρησιμοποιώντας τυπικές ροές εισόδου/εξόδου
https://www.itsvse.com/thread-10982-1-1.html

Υποδοχές τομέα Unix

Οι υποδοχές Unix Domain Sockets (UDS), Local Sockets ή Interprocess Communication (IPC) είναι τελικά σημεία επικοινωνίας που ανταλλάσσουν δεδομένα μεταξύ διεργασιών που εκτελούνται στο ίδιο λειτουργικό σύστημα Unix ή παρόμοιο με το Unix.

Το όνομα Unix domain socket αναφέρεται στην τιμή της παραμέτρου τομέα που μεταβιβάζεται στη συνάρτηση που δημιούργησε τον πόρο του συστήματος υποδοχής. Επιλέγεται επίσης ο ίδιος τομέας επικοινωνίας. [ 1 ] AF_UNIXAF_LOCAL

Οι έγκυρες τιμές παραμέτρων για το typeUDS είναι:

  • SOCK_STREAM (σε σύγκριση με το TCP) – Χρησιμοποιείται για υποδοχές προσανατολισμένες στη ροή
  • SOCK_DGRAM (σε σύγκριση με το UDP) – μια υποδοχή προσανατολισμένη στο datagram για τη διατήρηση των ορίων μηνυμάτων (όπως συμβαίνει με τις περισσότερες υλοποιήσεις UNIX, οι υποδοχές datagram τομέα UNIX είναι πάντα αξιόπιστες και δεν αναδιατάσσουν τα datagrams)
  • SOCK_SEQPACKET (σε σύγκριση με το SCTP) – Διαδοχικές υποδοχές πακέτων για συνδέσεις που διατηρούν τα όρια των μηνυμάτων και παραδίδουν μηνύματα με τη σειρά με την οποία αποστέλλονται


Το εργαλείο UDS είναι ένα τυπικό στοιχείο του λειτουργικού συστήματος POSIX.

Γιατί να χρησιμοποιήσετε υποδοχές τομέα Unix;

Οι υποδοχές τομέα Unix επιτρέπουν την επικοινωνία μεταξύ διεργασιών σε ένα μόνο μηχάνημα. Γιατί λοιπόν να τα επιλέξετε έναντι του TCP/IP; Για παράδειγμα, στο TCP/IP, μπορείτε να χρησιμοποιήσετε μια διεύθυνση βρόχου επιστροφής (localhost) για επικοινωνία ενός διακομιστή. Στα Windows, γιατί να τα επιλέξετε από τα Windows Naming Pipelines;

Γενικά, υπάρχουν διάφοροι λόγοι για τους οποίους μπορείτε να επιλέξετε να χρησιμοποιήσετε το UDS αντί για το TCP/IP για επικοινωνία μεταξύ διεργασιών:

  • Οι υποδοχές τομέα Unix έχουν συνήθως λιγότερα γενικά έξοδα και μεγαλύτερες ταχύτητες μεταφοράς από τη χρήση TCP/IP
  • Οι υποδοχές TCP/IP είναι ένας πεπερασμένος πόρος, ενώ οι υποδοχές τομέα Unix δεν έχουν αυστηρά όρια
  • Οι υποδοχές τομέα Unix έρχονται σε μορφή αρχείου, επομένως είναι εύκολο να "ανακαλύψετε" γνωστές διαδρομές
  • Η ενοποίηση με συστήματα αρχείων προσθέτει επίσης ένα επιπλέον επίπεδο ασφάλειας (εάν δεν έχετε πρόσβαση στη διαδρομή του αρχείου, δεν μπορείτε να αποκτήσετε πρόσβαση στην υποδοχή)


Το πρώτο σημείο είναι εύκολο να γίνει κατανοητό - μια γρήγορη Google θα δείξει ότι τα σημεία αναφοράς UDS και TCP/IP είναι πάντα καλύτερα από το UDS, επειδή όχι μόνο έχει σημαντικά χαμηλότερο λανθάνοντα χρόνο, αλλά και σημαντικά υψηλότερη απόδοση. Αυτό οφείλεται κυρίως στο γεγονός ότι το UDS είναι βελτιστοποιημένο για επικοινωνία με τον ίδιο διακομιστή,Για επικοινωνία IP, ο localhost πρέπει να περάσει από τη στοίβα IP τόσο στην πλευρά του αποστολέα όσο και στην πλευρά του παραλήπτη

Οι υποδοχές TCP/IP είναι ένας πεπερασμένος πόρος. Μπορείτε να χρησιμοποιήσετε μόνο έως και 65.535 πρίζες κάθε φορά. Εάν προσθέσετε το πρόβλημα, ο μέγιστος αριθμός υποδοχών που TIME_WAIT πραγματικά διαθέσιμες μπορεί να είναι πολύ μικρότερος από αυτήν την τιμή. Η σύνδεση localhost καταναλώνει επίσης πρίζες σε αυτήν την πισίνα. Η έξυπνη χρήση του UDS αποφεύγει αυτό το πρόβλημα. Επιτρέπει την επικοινωνία χωρίς να εξαντλούνται οι υποδοχές TCP/IP.

διακομιστής

Δημιουργήστε ένα νέο έργο κονσόλας .NET 8, αλλάξτε το SDK σε Microsoft.NET.Sdk.Web και διαμορφώστε το ως εξής:

Το Greet.proto έχει διαμορφωθεί ως εξής:

Ο κωδικός έχει ως εξής:

Μετά την έναρξη της μεταγλώττισης, όπως φαίνεται παρακάτω:



πελάτης

Δημιουργήστε ένα νέο έργο κονσόλας .NET 8 και ανατρέξτε στις ακόλουθες βιβλιοθήκες:

Η μέθοδος κλήσης της διεπαφής gRPC καλείται 10 φορές και κάθε κλήση καλείται για 200 χιλιοστά του δευτερολέπτου και ο κωδικός είναι ο εξής:

Ξεκινήστε το έργο και αφού ολοκληρωθεί η εκτέλεση, όπως φαίνεται στο παρακάτω σχήμα:



Αναφορά:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.




Προηγούμενος:Jetson (1) Jetson Orin Nano Super Developer Kit χωρίς συσκευασία
Επόμενος:Σύγκριση κοντέινερ ιστού netty και tomcat στο Spring Boot
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-8-11 20:57:04 |
Πελάτης HttpόχιgRPCκαι επικοινωνία υποδοχής τομέα Unix

διακομιστής

πελάτης

Οπως φαίνεται παρακάτω:

 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-8-12 10:05:14 |
ProtocolType.Unspecified: Δεν έχει καθοριστεί πρωτόκολλο και το σύστημα το επιλέγει αυτόματα
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-8-12 11:02:41 |
Η δοκιμή c# μπορεί να συνδεθεί κανονικά στο UDS


 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-9-16 15:26:30 |
Χρήση nginx για διακομιστή μεσολάβησης υποδοχών τομέα Unix (Δεν έχει δοκιμαστεί
Η διαμόρφωση έχει ως εξής:

Δώστε προτεραιότητα στο UDS: Εάν η υπηρεσία σας είναι στο ίδιο μηχάνημα με το Nginx και αναζητάτε υψηλή απόδοση και χαμηλή καθυστέρηση, το UDS είναι η καλύτερη επιλογή.
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-9-16 17:11:05 |
Ο αντίστροφος διακομιστής μεσολάβησης Nginx php-fpm χρησιμοποιεί UDS για επικοινωνία
https://www.itsvse.com/thread-11068-1-1.html
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com