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

Άποψη: 4002|Απάντηση: 2

[Πηγή] Το ASP.NET Core (24) βασίζεται στην επικοινωνία υψηλής απόδοσης Refit, MemoryPack

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2023-9-30 22:10:36 | | | |
απαιτήσεις: Με βάση την αρχιτεκτονική μικροϋπηρεσιών που χρησιμοποιεί το ASP.NET Core, ορισμένες υπηρεσίες είναι υποδομές (βασικές υπηρεσίες) που πρέπει να επικοινωνούν συχνά με μια συγκεκριμένη υπηρεσία και η υψηλή απόδοση και η χαμηλή καθυστέρηση είναι ιδιαίτερα σημαντικές.

Η χρήση του πρωτοκόλλου MemoryPack για τη σειριοποίηση δεδομένων έχει δύο πλεονεκτήματα σε σχέση με τη χρήση JSON: γρήγορη σειριοποίηση και μικρή μεταφορά περιεχομένου, γεγονός που βελτιώνει την απόδοση.

Αναθεώρηση:

MessagePack και protobuf-net σημεία αναφοράς απόδοσης
https://www.itsvse.com/thread-10655-1-1.html

.net/c# Xml, Json, Hessian, Σύγκριση σειριοποίησης buffer πρωτοκόλλου
https://www.itsvse.com/thread-4675-1-1.html

Η διεπαφή κλήθηκε 200.000 φορές χρησιμοποιώντας MemoryPack και JSON και τα αποτελέσματα ήταν τα εξής:



Το MemoryPack διαρκεί 29.895 χιλιοστά του δευτερολέπτου
Το JSON διαρκεί 34,283 χιλιοστά του δευτερολέπτου

Αφού είμαιΤοπική δοκιμή, το κενό δεν είναι πολύ αισθητόΌταν οι κλήσεις μεταξύ κεντρικών υπολογιστών, τα πεδία αυξάνονται και ο όγκος δεδομένων αυξάνεται, πιστεύω ότι το χάσμα θα είναι πιο εμφανές.

ASP.NET Η διαμόρφωση πυρήνα υποστηρίζει το πρωτόκολλο MemoryPack

Δεδομένου ότι το αντικείμενο σειριοποιείται χρησιμοποιώντας το πρωτόκολλο MemoryPack και στη συνέχεια αποστέλλεται μέσω του πρωτοκόλλου HTTP, ASP.NET Core πρέπει να υποστηρίζει το πρωτόκολλο MemoryPack και δημιουργείται μια νέα κλάση MemoryPackInputFormatter, ο κώδικας έχει ως εξής:

Στη συνέχεια, το MvcOptions προσθέτει υποστήριξη για το πρωτόκολλο MemoryPack, με τον ακόλουθο κώδικα:

Ορίστε ένα αντικείμενο μεταφοράς με τον ακόλουθο κώδικα UserProfile:


Η μέθοδος ελεγκτή προσθέτει μια διεπαφή με τον ακόλουθο κώδικα:

Η κονσόλα χρησιμοποιεί το Refit για την αποστολή αιτημάτων HTTP

Μια εφαρμογή κονσόλας χρησιμοποιεί το MemoryPack για τη σειριοποίηση αντικειμένων και την αποστολή αιτήσεων HTTP σε διεπαφές, με τον ακόλουθο κώδικα:

Το τεστ έχει ως εξής:



Όταν χρησιμοποιείτε το MemoryPackSerializer για τη σειριοποίηση ενός αντικειμένου, ο ακόλουθος κώδικας θα εμφανίσει ένα σφάλμα:


Το System.Object δεν είναι εγγεγραμμένο σε αυτόν τον πάροχο

Θα πρέπει να είναι ένα σφάλμα MemoryPack, τροποποιημένο ως εξής:

(Τέλος)





Προηγούμενος:Τραυλισμός της Εξερεύνησης αρχείων των Windows 11, κολλημένη λύση
Επόμενος:.NET/C# νέος τύπος καρτέλας δυνατότητας
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2023-10-1 08:06:35 |
Το System.Object δεν είναι εγγεγραμμένο σε αυτόν τον πάροχο

Αυτό το ζήτημα είναι ένα πρόβλημα με το Refit, ως εξής:




 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2024-12-31 21:47:28 |
Κατεβάστε το αρχείο με το Refit για να λάβετε μια ροή απόκρισης (Σημείωση:Ολόκληρη η ροή ληφθέντων αρχείων δεν φορτώνεται στη μνήμη



Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com