gRPC הוא פלטפורמת RPC אוניברסלית בקוד פתוח עם ביצועים גבוהים, שפותחה על ידי Google. ב-gRPC, אפליקציית לקוח יכולה לקרוא ישירות למתודות באפליקציית שרת במכונה אחרת, כאילו מדובר באובייקט מקומי. כך קל יותר ליצור אפליקציות ושירותים מבוזרים.
ניהול API
Endpoints פועל עם Extensible Service Proxy (ESP) או עם Extensible Service Proxy V2 (ESPv2) כדי לספק ניהול של ממשקי API.
באמצעות Endpoints for gRPC, אתם יכולים להשתמש ביכולות ניהול ה-API של Endpoints כדי להוסיף לממשקי gRPC שלכם מסוף API, מעקב, אירוח, איתור באגים, אימות ועוד. בנוסף, אחרי שמציינים כללי מיפוי מיוחדים, ESP ו-ESPv2 מתרגמים JSON RESTful דרך HTTP לבקשות gRPC. המשמעות היא שאפשר לפרוס שרת gRPC שמנוהל על ידי Endpoints ולקרוא ל-API שלו באמצעות לקוח gRPC או JSON/HTTP, וכך ליהנות מגמישות רבה יותר ומשילוב קל יותר עם מערכות אחרות.

אפשר ליצור שירותי gRPC ל-Endpoints בכל שפה שנתמכת על ידי gRPC. באתר gRPC אפשר למצוא מידע נוסף על gRPC, כולל מדריכים להתחלה מהירה ומדריכים ליצירת שרתים ולקוחות.
פלטפורמות מחשוב נתמכות
ESP ו-ESPv2 הם פרויקטים בקוד פתוח, ואפשר להשתמש בהם בדרכים הבאות:
- קונטיינר ב-Artifact Registry.
- הערות המוצר של ESP כוללות את קובץ האימג' הנוכחי של ESP Docker.
- בהערות המוצר של ESPv2 מופיע מידע על תמונת ה-Docker הנוכחית של ESPv2.
- קוד המקור ב-GitHub.
- פרטים על בניית ESP מופיעים בקובץ ה-README של ESP.
- פרטים על בניית ESPv2 מופיעים בקובץ ה-README של ESPv2.
אפשר להריץ את מאגר ה-ESP ב:
- Compute Engine עם Docker
- Kubernetes, כולל Google Kubernetes Engine
- מחשב עם Linux או macOS או ספק שירותי ענן אחר
אפשר להריץ את מאגר ESPv2 ב:
- Cloud Run
- מילוי בקשות מסוג Knative
- GKE
- Compute Engine
- Kubernetes
מידע נוסף זמין במאמר מידע כללי על Cloud Endpoints.
במאמר פריסת הקצה העורפי של ה-API מוסבר איך פורסים את ה-API ואת Extensible Service Proxy בפלטפורמות מחשוב. Google Cloud
הגדרה והגדרת שירות
פרוטוקול 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 עם Endpoints, צריך לספק הגדרת שירות יחד עם הגדרת השירות. ההגדרה הזו קובעת את התנהגות השירות בזמן הריצה, כולל אימות, ה-API שכלול בשירות, מיפויים מבקשות HTTP לשיטות gRPC והגדרות מיוחדות של Cloud Endpoints.
המרת קידוד
Endpoints מספק תרגום פרוטוקולים לשירותי gRPC, ומאפשר ללקוחות להשתמש ב-HTTP/JSON כדי לתקשר עם שירות gRPC דרך ESP או ESPv2.
תרחיש השימוש הנפוץ ביותר הוא לאפשר ללקוחות בדפדפן לתקשר עם שרתי gRPC ללא תמיכה מיוחדת מספריות לקוח של gRPC. נקודות קצה (endpoint) מספקות מנגנון למיפוי בקשות HTTP לשיטות gRPC כחלק מהגדרת השירות.
מידע נוסף בנושא זמין במאמר Transcoding HTTP/JSON to gRPC.
מגבלות
התכונות הבאות של gRPC עדיין לא נתמכות ב-Endpoints:
- דחיסת מטען ייעודי
- כל IDL אחר מלבד מאגרי פרוטוקולים
בנוסף, Endpoints תומך רק בשירותי gRPC עבור GKE, Compute Engine ו-Cloud Run (בטא). Endpoints לא תומך בשירותי gRPC בסביבות App Engine.
מה השלב הבא?
- כדי להפעיל שירות gRPC פשוט עם Cloud Endpoints בסביבה שתבחרו, תוכלו לפעול לפי אחד מהמדריכים שלנו
- איך מגדירים שירות gRPC ל-Cloud Endpoints
- עיון בדוגמאות. הדוגמה getting-started-grpc זמינה ב-GitHub בשפות הבאות:
- הדוגמה של חנות הספרים זמינה בשפות הבאות: