בדף הזה מופיעים פרטים ספציפיים ל-Cloud Run שמיועדים למפתחים שרוצים להשתמש ב-gRPC כדי לחבר שירות Cloud Run לשירותים אחרים, למשל כדי לספק תקשורת פשוטה ומהירה בין מיקרו-שירותים פנימיים. אתם יכולים להשתמש ב-Cloud Run עם כל סוגי ה-gRPC, סטרימינג או unary.
תרחישי שימוש אפשריים:
- תקשורת בין מיקרו-שירותים פנימיים.
- עומסי נתונים גבוהים (פרוטוקול gRPC משתמש במאגרי פרוטוקולים, שהם עד פי שבעה יותר מהירים מקריאות REST).
- צריך רק הגדרת שירות פשוטה, לא צריך לכתוב ספריית לקוח מלאה.
- אפשר להשתמש ב-gRPCs להזרמה בשרת gRPC כדי לבנות אפליקציות וממשקי API עם תגובה מהירה יותר.
כדי לשלב את השירות עם gRPC:
- אם אתם משתמשים ב-gRPC Streaming, אתם צריכים להגדיר את השירות כך שישתמש ב-HTTP/2. HTTP/2 היא שיטת התעבורה לסטרימינג של gRPC.
- מגדירים את הודעות הבקשה והתשובות בקובץ proto ומקמפלים אותן.
- יוצרים שרת gRPC לטיפול בבקשות ולהחזרת תשובות: השרת צריך להאזין למשתנה הסביבה
PORT. - יוצרים לקוח ששולח בקשות ומטפל בתגובות משרת gRPC.
- אפשר גם להוסיף אימות.
- מפתחים ופורסים את השירות.
הגדרת השירות לשימוש ב-HTTP/2
אם אתם משתמשים ב-gRPC עם Cloud Run, מומלץ להגדיר את השירות כך שישתמש ב-HTTP/2. למרות שחלק מהתכונות הפשוטות של gRPC פועלות בלי להשתמש ב-HTTP/2, הרבה תכונות של gRPC, כמו סטרימינג ומטא-נתונים, דורשות HTTP/2.
הגדרה והידור של הודעות בקובץ proto
אין הגדרות נוספות או הגדרות ספציפיות ל-Cloud Run שצריך להוסיף להגדרות הפרוטו. בדיוק כמו בכל שימוש אחר ב-gRPC, משתמשים בgRPC protocol buffers להגדרות של שירותים ולסריאליזציה של נתונים.
יצירת לקוח gRPC
אין צורך להוסיף דברים מיוחדים או ספציפיים ל-Cloud Run ללקוח שמשתמש ב-gRPC: צריך לפעול לפי ההוראות במסמכי gRPC בנושא שימוש בהגדרות שירות בקוד לקוח, ולעיין בלקוחות לדוגמה שמופיעים במדריכי gRPC הספציפיים לשפה.
התאמה אוטומטית לעומס ואיזון עומסים
Cloud Run משתמש במאזני עומסים שמנוהלים על ידי Google, ששומרים על חיבורים נפרדים בין לקוחות לבין מכונות Cloud Run. ב-gRPC, התאמה אוטומטית לעומס מתנהגת באופן הבא:
- חיבורי gRPC מלקוחות מסתיימים במאזן העומסים של קצה הרשת. שינוי ההגדרות של
KeepAliveמשפיע רק על החיבור למאזן העומסים, ולא על המופעים של Cloud Run. הלקוח לא מזהה מקרים שבהם מופסקת פעולה של מופע. - במהלך הקטנת הקיבולת, מאזן העומסים סוגר את החיבורים על ידי שליחת הודעות GOAWAY למופעי ה-Backend כשהם מושבתים.
- במהלך הרחבת הקיבולת, מאזן העומסים יוצר חיבורים חדשים למופעי ה-Backend. כל הפעולות האלה שקופות ללקוחות.
- במהלך התאמה אוטומטית לעומס, הרבה מופעים יכולים להתחיל ולבצע multiplexing לחיבור יחיד בין הלקוח לבין מאזן העומסים של ה-proxy.
- המספר המרבי של בקשות בו-זמנית נקבע לפי המספר המקסימלי של בקשות בו-זמנית לכל מופע של הודעות. בסטרימינג, כל סטרימינג נספר פעם אחת מתוך מספר הבקשות המקסימלי בו-זמנית.
האזנה לבקשות gRPC בשירות Cloud Run
הדרישה המיוחדת היחידה לשרת gRPC שפועל ב-Cloud Run היא להאזין ליציאה שצוינה במשתנה הסביבה PORT, כפי שמוצג בקוד הבא:
Go
פתיחת חיבור gRPC לשירות
כדי לפתוח חיבור gRPC לשירות כדי לשלוח הודעות gRPC, צריך לציין את דומיין המארח, שהוא כתובת ה-URL של שירות Cloud Run או הדומיין המותאם אישית שמופה לשירות הזה, יחד עם יציאה 443, שהיא היציאה ש-gRPC אמור להשתמש בה.
Go
שליחת בקשות gRPC ללא אימות
בדוגמה הבאה אפשר לראות איך שולחים בקשה ללא אימות, באמצעות חיבור gRPC שהוגדר כמו שצוין קודם.
Go
שליחת בקשות gRPC עם אימות
בדוגמה הבאה אפשר לראות איך משתמשים באימות בין שירותים, אם לשירות הקורא יש הרשאת הפעלה לשירות המקבל. שימו לב שהקוד הזה יוצר כותרת הרשאה עם אסימון הזהות המתאים: זה נדרש. ההרשאות הנדרשות וכותרת ההרשאה מתוארות בפירוט במאמר בנושא אימות משירות לשירות.
Go
קוד לדוגמה לסטרימינג של gRPC
לקבלת קוד לדוגמה, אפשר לעיין בהטמעה בRouteGuideמדריך היסודות של gRPC בשפה הרצויה. לדוגמה, כשמשתמשים ב-Go, כדאי לעיין במאמר Implementing RouteGuide.