סקירה כללית על gRPC

gRPC הוא פלטפורמת RPC אוניברסלית בקוד פתוח עם ביצועים גבוהים, שפותחה על ידי Google. ב-gRPC, אפליקציית לקוח יכולה לקרוא ישירות למתודות באפליקציית שרת במכונה אחרת, כאילו מדובר באובייקט מקומי. כך קל יותר ליצור אפליקציות ושירותים מבוזרים.

אחד היתרונות העיקריים של שימוש ב-gRPC הוא התיעוד. אפשר להשתמש בקובצי ההגדרה של השירות ובקובצי ההגדרה של ממשק ה-API כדי ליצור מאמרי עזרה ל-API.

ניהול API

בעזרת API Gateway ל-gRPC, אתם יכולים להשתמש ביכולות ניהול ה-API של API Gateway כדי להוסיף ניטור, אירוח, מעקב, אימות ועוד לשירותי gRPC ב-Cloud Run. בנוסף, אחרי שמציינים כללי מיפוי מיוחדים, API Gateway מתרגם JSON RESTful דרך HTTP לבקשות gRPC. המשמעות היא שאפשר לפרוס שרת gRPC שמנוהל על ידי API Gateway ולקרוא ל-API שלו באמצעות לקוח gRPC או JSON/HTTP, וכך ליהנות מגמישות רבה יותר ומשילוב קל יותר עם מערכות אחרות.

אפשר ליצור שירותי gRPC עבור API Gateway בכל שפה שנתמכת על ידי gRPC. באתר gRPC אפשר למצוא מידע נוסף על gRPC, כולל מדריכים להתחלה מהירה ומדריכים ליצירת שרתים ולקוחות.

הגדרה והגדרת שירות

‫gRPC מבוסס על הרעיון של הגדרת שירות, ציון השיטות שאפשר להפעיל מרחוק עם הפרמטרים וסוגי ההחזרה שלהן. כברירת מחדל,‏ gRPC משתמש בפרוטוקולים של מאגרי נתונים כשפה להגדרת ממשקים (IDL) כדי לתאר את ממשק השירות ואת המבנה של הודעות המטען הייעודי.

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

כדי להשתמש ב-gRPC עם API Gateway, צריך לספק הגדרת שירות יחד עם הגדרת השירות. ההגדרה הזו קובעת את התנהגות השירות בזמן הריצה, כולל אימות, ממשקי ה-API שכלולים בשירות, מיפויים מבקשות HTTP לשיטות gRPC והגדרות מיוחדות של API Gateway.

המרת קידוד

‫API Gateway מספק תרגום פרוטוקולים לשירותי gRPC ב-Cloud Run, ומאפשר ללקוחות להשתמש ב-HTTP/JSON כדי לתקשר עם שירות gRPC דרך API Gateway.

תרחיש השימוש הנפוץ ביותר הוא לאפשר ללקוחות בדפדפן לתקשר עם שרתי gRPC ללא תמיכה מיוחדת מספריות לקוח של gRPC. ‫API Gateway מספק מנגנון למיפוי בקשות HTTP לשיטות gRPC כחלק מהגדרת השירות.

מידע נוסף בנושא זמין במאמר Transcoding HTTP/JSON to gRPC.

מגבלות

התכונות הבאות של gRPC עדיין לא נתמכות ב-API Gateway:

  • דחיסת מטען ייעודי
  • כל IDL אחר מלבד מאגרי פרוטוקולים

בשלב הזה, API Gateway תומך רק בשירותי gRPC של Cloud Run.

המאמרים הבאים

  • עיון בדוגמאות. הדוגמה getting-started-grpc זמינה ב-GitHub בשפות הבאות:
  • הדוגמה של חנות הספרים זמינה בשפות הבאות: