istio-0.8 服務超時配置

請求超時

可使用路由規則的httpReqTimeout字段指定http請求的超時。默認狀況下,超時爲15秒,但在此任務中,咱們將reviews服務超時重寫爲1秒。然而,爲了看到它的效果,咱們還將在ratings服務調用中引入人爲的2秒延遲。api

  1. 將請求路由到reviews服務的v2 ,即調用ratings服務的版本瀏覽器

    cat <<EOF | istioctl replace -f - apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - route: - destination: host: reviews subset: v2 EOF
  2. ratings服務調用添加2秒延遲:bash

    cat <<EOF | istioctl replace -f - apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: ratings spec: hosts: - ratings http: - fault: delay: percent: 100 fixedDelay: 2s route: - destination: host: ratings subset: v1 EOF
  3. 在瀏覽器中打開Bookinfo URL(http:// $ GATEWAY_URL / productpage)微服務

    您應該看到Bookinfo應用程序正常工做(顯示評級星標),但每次刷新頁面時都會有2秒的延遲。spa

  4. 如今爲reviews服務調用添加1秒的請求超時code

    cat <<EOF | istioctl replace -f - apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - route: - destination: host: reviews subset: v2 timeout: 1s EOF
  5. 刷新Bookinfo網頁路由

    您如今應該看到它在1秒內返回(而不是2秒),但評論不可用。get

瞭解發生了什麼

在此任務中,您使用Istio將對reviews微服務的調用的請求超時設置爲1秒(而不是默認的15秒)。因爲服務在處理請求時reviews隨後調用ratings服務,所以您使用Istio在調用中注入了2秒的延遲ratings,所以您將致使reviews服務花費超過1秒的時間來完成,所以您能夠看到超時運行。產品

您發現Bookinfo產品頁面(調用reviews服務填充頁面)而不是顯示評論顯示消息:對不起,本書目前沒法提供產品評論。這是它從reviews服務接收超時錯誤的結果。io

若是你查看故障注入任務,你會發現productpage微服務也有本身的應用程序級超時(3秒)來調用reviews微服務。請注意,在此任務中,咱們使用Istio路由規則將超時設置爲1秒。若是您將超時設置爲大於3秒(例如,4秒)的超時,則超時將無效,由於二者中的限制性更強。更多細節能夠在這裏找到。

關於Istio中超時的另外一個注意事項是,除了在路由規則中覆蓋它們以外,就像在此任務中所作的那樣,若是應用程序添加了「x-envoy-upstream-」,它們也能夠在每一個請求的基礎上被覆蓋。 rq-timeout-ms「出站請求的標頭。在標頭中,超時以毫秒(而不是第二)單位指定。

資料:

https://istio.io/docs/tasks/traffic-management/request-routing/

相關文章
相關標籤/搜索