簡體   English   中英

Istio Sidecar 連接池?

[英]Istio Sidecar Connection Pooling?

我整天都在閱讀文檔,但我似乎無法讓它發揮作用。

我有一個不守規矩的應用程序,它為每個 HTTP 請求打開一個連接。 我想通過在長壽命的 TCP 連接上強制 HTTP 多路復用來提高性能。

我嘗試制作 ServiceEntry 和 DestinationRule,但我沒有看到有任何效果。 我仍然看到大量的 TCP 連接。

我認為 Istio 會通過來自DestinationRulemaxRequestsPerConnection來匯集連接。 那是錯的嗎?

我想我需要:

  1. 一個 ServiceEntry 用於公開外部服務。
  2. 用於管理服務訪問方式的 DestinationRule。

總的來說,盡管我希望 Envoy 側車僅匯集和多路復用此服務的所有出口連接,無論目的地如何。

目的地規則

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: api
spec:
  host: google.com
  trafficPolicy:
    connectionPool:
      tcp:
        maxConnections: 100
        connectTimeout: 30ms
        tcpKeepalive:
          time: 7200s
          interval: 75s

服務入口

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: api
spec:
  hosts:
  - google.com
  location: MESH_EXTERNAL
  ports:
  - number: 443
    name: https
    protocol: TLS
  resolution: DNS
istioctl -i istio proxy-config cluster api.namespace
...
google.com    443       -          outbound      STRICT_DNS       api.namespace
...

istioctl -i istio proxy-config cluster api.namespace --fqdn google.com -o json

        "circuitBreakers": {
            "thresholds": [
                {
                    "maxConnections": 100,
                    "maxPendingRequests": 4294967295,
                    "maxRequests": 4294967295,
                    "maxRetries": 4294967295,
                    "trackRemaining": true
                }
            ]
        },


        "upstreamConnectionOptions": {
            "tcpKeepalive": {
                "keepaliveTime": 7200,
                "keepaliveInterval": 75
            }
        },




好的,所以我認為我在上面的問題中發現的是maxConnections不會導致 Envoy 代理創建一個具有 100 個連接的池。 相反,這會設置一個斷路規則,阻止應用程序打開更多連接。

也許我需要使用 HTTP 連接池?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM