gRPC
gRPC (ראשי תיבות של gRPC Remote Procedure Calls[1]) היא פלטפורמת תוכנה חוצת-פלטפורמות בקוד פתוח לRPC. שכבת התוכנה gRPC נוצרה בתחילה על ידי גוגל, שהשתמשה בתשתית RPC יחידה למטרות כלליות בשם Stubby כדי לחבר את ההיקף הגדול של ה-microservices הפועלים בתוך ולרוחב מרכזי הנתונים שלה משנת 2001 בערך [2] במרץ 2015, גוגל החליטה לבנות את הגרסה הבאה של Stubby ולהפוך אותה לקוד פתוח. התוצאה הייתה gRPC, שמשמשת כיום בארגונים רבים מלבד גוגל להעצים מקרי שימוש מע-microservices ועד ל"last mile" של מחשוב (ניידים, אינטרנט ואינטרנט של הדברים). הוא משתמש ב-HTTP/2 לתעבורת מידע, במאגרי פרוטוקול (Protocol Buffers) כשפת תיאור הממשק, ומספק תכונות כגון אימות, סטרימינג דו-כיווני ובקרת זרימה, חסימה או אי-חסימה של קישורים, וכן ביטול וחדלות-זמן (timeouts). הוא מייצר חיבורים בין פלטפורמות ללקוח ולשרת עבור שפות רבות. תרחישי השימוש הנפוצים ביותר כוללים חיבור שירותים בארכיטקטורה בסגנון מיקרו-שירותים, או חיבור לקוחות מכשירים ניידים לשירותי קצה.[3]
מפתח | חברת גוגל |
---|---|
גרסה אחרונה | 1.68.0 (16 בנובמבר 2024) |
נכתבה בשפות | C |
סוג רישיון | אפאצ'י 2.0 |
קוד מקור | https://github.com/grpc/grpc |
grpc | |
השימוש המורכב של gRPC ב-HTTP/2 לא מאפשר ליישם לקוח gRPC בדפדפן, אלא עם שימוש בפרוקסי.[4]
אימות
עריכהgRPC תומך בשימוש ב- TLS ובאימות מבוסס אסימון ( token-based authentication). חיבור לשירותי גוגל חייב להשתמש ב-TLS. ישנם שני סוגים של אישורים: אישורי ערוץ ואישורי שיחה. להרשאה מבוססת אסימון, gRPC מספקת שרת מיירט [5] ויירוט לקוח.[6]
הצפנה
עריכהgRPC משתמש במאגרי פרוטוקול כדי לקודד נתונים. בניגוד לממשקי API של REST עם JSON, יש להם מפרט קפדני יותר. בשל מפרט אחוד, gRPC מבטל ויכוחים וחוסך זמן למפתחים מכיוון ש-gRPC עקבי בין פלטפורמות ויישומים.[7]
אימוץ
עריכהמספר ארגונים שונים אימצו את gRPC, כגון Uber, [8] Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, Juniper Networks, [9] Spotify, [10] Zalando, [11] Dropbox, [12] ו-Google כמפתחת המקורית.
פרויקט הקוד הפתוח u-bmc משתמש ב-gRPC כדי להחליף ממשק ניהול פלטפורמה חכמה (IPMI).[13] ב-8 בינואר 2019, Dropbox הודיעה כי הגרסה הבאה של "Courier", מסגרת ה-RPC שלהם בליבת הארכיטקטורה מוכוונת השירות (SOA), תועבר להתבסס על gRPC, בעיקר בגלל שהיא תואמת היטב את המנהג הקיים שלהם. מסגרות RPC.[14]
חלופות ל-gRPC
עריכה- Cap'n Proto
- Apache Thrift
- Apache Avro
- JSON-RPC
- XML-RPC
קישורים חיצוניים
עריכה- אתר האינטרנט הרשמי של GRPC (באנגלית)
- דף הבית של gRPC
- gRPC – github.com
- gRPC – opensource.google.com
הערות שוליים
עריכה- ^ "FAQ". gRPC.
- ^ "gRPC: a true internet-scale RPC framework is now 1.0 and ready for production deployments". 24 באוגוסט 2016. נבדק ב-2023-04-03.
{{cite web}}
: (עזרה) - ^ "About gRPC". gRPC (באנגלית). נבדק ב-2021-05-25.
- ^ "The state of gRPC in the browser". gRPC (באנגלית אמריקאית). 8 בינואר 2019.
{{cite web}}
: (עזרה) - ^ "gRPC Server Interceptor".
- ^ "gRPC". grpc.io. נבדק ב-2020-02-24.
- ^ JamesNK. "Compare gRPC services with HTTP APIs". docs.microsoft.com (באנגלית אמריקאית). נבדק ב-2020-02-24.
- ^ "gRPC at Uber". 19 במאי 2021.
{{cite web}}
: (עזרה) - ^ "gRPC". grpc.io. נבדק ב-2020-02-24.
- ^ "gRPC at Spotify" (PDF). jfokus.se. נבדק ב-2020-05-12.
- ^ "Zalando Tech Radar". opensource.zalando.com. נבדק ב-2021-04-08.
- ^ "How we migrated Dropbox from Nginx to Envoy". Dropbox.Tech. נבדק ב-2020-10-30.
- ^ "u-bmc". GitHub.com. 5 באוקטובר 2022.
{{cite web}}
: (עזרה) - ^ Nigmatullin, Ruslan; Ivanov, Alexey (2019-01-08). "Courier: Dropbox migration to gRPC". נבדק ב-2019-01-09.