הגדרת מגבלת זמן קצוב לתפוגה של יעד ב-Apigee Hybrid

סקירה כללית

‫Apigee hybrid תומך בערך יעד של io.timeout.millis עד 55,000 אלפיות השנייה כברירת מחדל. אפשר לקרוא מידע נוסף במאמר מפרט ההעברה של נקודת הקצה (endpoint) לטירגוט.

כדי להגדיל את מגבלת הזמן הקצוב לתפוגה של נקודות קצה איטיות, צריך לבצע את השינויים הבאים בהגדרות של סביבת זמן הריצה:

  • מגדירים את virtualhosts[].requestTimeout בין Istio לבין מעבד הבקשות(MP). מארחים וירטואליים
  • הגדרת conf_http_HTTPTransport.io.timeout.millis בין MP לבין היעדים

אתם יכולים לקבוע את ההגדרות האלה לסביבות ספציפיות או לכל הסביבות בהתקנה.

הגדרת virtualhost כדי לשנות את מגבלת הזמן הקצוב לתפוגה של בקשות

הערך requestTimeout הוא משך הזמן המקסימלי (בשניות) שמוגדר במארח וירטואלי לעיבוד בקשה על ידי ה-MP.

כדי להגדיר את מגבלת הזמן הקצוב לתפוגה של הבקשה, אפשר להשתמש במאפיינים של virtualhosts[].requestTimeout. מבצעים את השינויים הבאים בקובץ overrides.yaml:

  1. מוסיפים את הבית הבא לקובץ overrides.yaml:
    virtualhosts:
    - name: ENV_GROUP_NAME
      requestTimeout: 600   # Increase requestTimeout to 600 seconds
    
  2. צריך לשדרג קבוצת סביבות (virtualhost) אחת בכל פעם. מציינים את קבוצת הסביבות באמצעות --set envgroup=ENV_GROUP_NAME. חוזרים על הפקודות הבאות לכל קבוצת סביבות שמוזכרת בקובץ overrides.yaml:

    הרצת בדיקה:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    ‫ENV_GROUP_RELEASE_NAME הוא השם שבו התקנתם בעבר את התרשים apigee-virtualhost. בדרך כלל זה ENV_GROUP_NAME.

    כדי לשדרג את התרשים:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE
    
  3. בודקים את המצב של ApigeeRoute‏ (AR).

    התקנת virtualhosts יוצרת את ApigeeRouteConfig‏ (ARC), שיוצר באופן פנימי את ApigeeRoute‏ (AR) אחרי שה-watcher של Apigee שולף פרטים שקשורים לקבוצת הסביבות ממישור הבקרה. לכן, צריך לבדוק שהמצב של ה-AR התואם הוא "פועל":

    kubectl -n APIGEE_NAMESPACE get arc
    
    NAME                                STATE   AGE
    apigee-org1-dev-egroup                       2d
    kubectl -n APIGEE_NAMESPACE get ar
    
    NAME                                        STATE     AGE
    apigee-org1-dev-egroup-cb9a8a                running   2d

הגדרת סביבות ספציפיות כדי לשנות את מגבלת הזמן הקצוב לתפוגה של היעד

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

כדי להגדיר סביבות ספציפיות לשינוי מגבלת הזמן הקצוב לתפוגה של היעד, אפשר להשתמש במאפיינים של envs[].components.runtime. מבצעים את השינויים הבאים בקובץ overrides.yaml:

  1. מוסיפים את הבית הבא לקובץ overrides.yaml:
    envs:
    - name: ENV_NAME
      components.
        runtime:
          cwcAppend:
            conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. צריך לשדרג סביבה אחת בכל פעם. משדרגים את תרשים ה-apigee-env לכל סביבה שמעדכנים:

    הרצת בדיקה:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    
    • ‫ENV_RELEASE_NAME הוא שם שמשמש למעקב אחרי ההתקנה והשדרוגים של התרשים apigee-env. השם הזה חייב להיות ייחודי ושונה משמות אחרים של גרסאות Helm בהתקנה. בדרך כלל זהה ל-ENV_NAME. עם זאת, אם לסביבה יש שם זהה לקבוצת הסביבות, צריך להשתמש בשמות שונים לגרסאות של הסביבה ושל קבוצת הסביבות, לדוגמה dev-env-release ו-dev-envgroup-release. מידע נוסף על גרסאות ב-Helm זמין במאמר Three big concepts class="external" במאמרי העזרה של Helm.
    • ‫ENV_NAME הוא שם הסביבה שמשדרגים.
    • OVERRIDES_FILE הוא הקובץ הערוך של overrides.yaml.
  3. כדי לשדרג את התרשים:
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    
  4. כדי לוודא שהיא פועלת, בודקים את המצב של הסביבה הרלוונטית:

    kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    my-org-my-env-123abc          running     2d

הגדרת כל הסביבות לשינוי מגבלת הזמן הקצוב לתפוגה של היעד

שינויים בבית runtime ישנו את מגבלת הזמן הקצוב לתפוגה של היעד בכל הסביבות בהתקנה. אפשר לשנות את ההגדרות האלה לסביבות ספציפיות באמצעות המאפיינים של runtime.

  1. מוסיפים את הבית הבא לקובץ overrides.yaml:
    runtime:
      cwcAppend:
        conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. משדרגים את התרשים של apigee-env לכל סביבה בהתקנה:

    הרצת בדיקה:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    כדי לשדרג את התרשים:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE