<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                Spring Cloud創建了一個嵌入式Zuul代理,以簡化UI應用程序想要對一個或多個后端服務進行代理調用的常見用例的開發。 此功能對于用戶界面代理其所需的后端服務非常有用,從而無需為所有后端獨立管理CORS(全稱是"跨域資源共享"Cross-origin resource sharing)和身份驗證問題。 要啟用它,請使用`@EnableZuulProxy`注解Spring Boot主類。 這樣做會導致本地呼叫轉發到適當的服務。 按照慣例,具有用戶ID的服務從位于`/users`的代理接收請求(帶有前綴剝離)。 代理使用Ribbon 來定位發現的實例,并轉發請求。 所有請求都在hystrix命令中執行,因此Hystrix指標中會出現故障。 斷路發生后,代理不會嘗試聯系該服務。 >Zuul啟動器不包含發現客戶端,因此,對于基于服務ID的路由,您還需要在類路徑中提供其中一個(Eureka是一種選擇)。 要跳過自動添加的服務,請將`zuul.ignored-services`設置為服務ID模式列表。 如果服務與忽略模式匹配但仍包含在顯式配置的路由映射中,則它是不忽略的,如以下示例所示: ``` zuul: ignoredServices: '*' routes: users: /myusers/** ``` 以上示例所有服務都將忽略,除了`users` 要擴充或更改代理路由,可以添加外部配置,如下所示: ``` zuul: routes: users: /myusers/** ``` 前面的示例意味著對`/myusers`的HTTP調用被轉發到`users `服務(例如`/myusers/101`被轉發到`/101`)。 要對路由進行更細粒度的控制,可以單獨指定路徑和serviceId,如下所示: ``` zuul: routes: users: path: /myusers/** serviceId: users_service ``` 前面的示例意味著對`/myusers`的HTTP調用將轉發到`users_service`服務。 路徑必須具有可以指定為ant樣式模式的路徑,因此`/myusers /*`僅匹配一個級別,但`/myusers /**`是分層匹配的。 后端的位置可以指定為`serviceId`(用于發現服務)或`url`(用于物理位置),如以下示例所示: ``` zuul: routes: users: path: /myusers/** url: http://example.com/users_service ``` 這些簡單的url-routes不會作為`HystrixCommand`執行,也不會使用Ribbon對多個URL進行負載均衡。 要實現這些目標,您可以使用靜態服務器列表指定`serviceId`,如下所示: ``` zuul: routes: echo: path: /myusers/** serviceId: myusers-service stripPrefix: true hystrix: command: myusers-service: execution: isolation: thread: timeoutInMilliseconds: ... myusers-service: ribbon: NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList listOfServers: http://example1.com,http://example2.com ConnectTimeout: 1000 ReadTimeout: 3000 MaxTotalHttpConnections: 500 MaxConnectionsPerHost: 100 ``` 另一種方法是指定服務路由并為serviceId配置Ribbon客戶端(這樣做需要在Ribbon中禁用Eureka支持 - 請參閱上面的更多信息),如以下示例所示: ``` zuul: routes: users: path: /myusers/** serviceId: users ribbon: eureka: enabled: false users: ribbon: listOfServers: example.com,google.com ``` 您可以使用`regexmapper`在`serviceId`和路由之間提供約定。 它使用正則表達式命名組從`serviceId`中提取變量并將它們注入路由模式,如以下示例所示: ``` @Bean public PatternServiceRouteMapper serviceRouteMapper() { return new PatternServiceRouteMapper( "(?<name>^.+)-(?<version>v.+$)", "${version}/${name}"); } ``` 上面的示例表示`myusers-v1`的`serviceId`映射到`route / v1 / myusers / **`。 接受任何正則表達式,但所有命名組必須同時出現在`servicePattern`和`routePattern`中。 如果`servicePattern`與`serviceId`不匹配,則使用默認行為。 在前面的示例中,`myusers`的`serviceId`映射到`“/ myusers / **”`路由(未檢測到版本)。 默認情況下禁用此功能,僅適用于已發現的服務。 要為所有映射添加前綴,請將`zuul.prefix`設置為值,例如`/api`。 默認情況下,在轉發請求之前,會從請求中刪除代理前綴(您可以使用`zuul.stripPrefix = false`關閉此行為)。 您還可以關閉從各個路由中剝離特定于服務的前綴,如以下示例所示: ``` zuul: routes: users: path: /myusers/** stripPrefix: false ``` >`zuul.stripPrefix`僅適用于`zuul.prefix`中設置的前綴。 它對給定路徑的路徑中定義的前綴沒有任何影響。 在前面的示例中,對`/ myusers / 101`的請求將轉發到用戶服務上的`/ myusers / 101`。 `zuul.routes`條目實際上綁定到`ZuulProperties`類型的對象。 如果查看該對象的屬性,可以看到它還具有`retryable`標志。 將該標志設置為`true`以使Ribbon客戶端自動重試失敗的請求。 當您需要修改使用功能區客戶端配置的重試操作的參數時,也可以將該標志設置為`true`。 默認情況下,`X-Forwarded-Host`標頭會添加到轉發的請求中。 要將其關閉,請設置`zuul.addProxyHeaders = false`。 默認情況下,前綴路徑被剝離,對后端的請求選擇`X-Forwarded-Prefix`標頭(前面顯示的示例中為/ myusers)。 如果設置默認路由(`/`),則具有`@EnableZuulProxy`的應用程序可以充當獨立服務器。 例如,`zuul.route.home:/`會將所有流量(“/ **”)路由到“home”服務。 如果需要更細粒度的忽略,則可以指定要忽略的特定模式。 這些模式在路徑定位過程開始時進行評估,這意味著前綴應包含在模式中以保證匹配。 忽略的模式跨越所有服務并取代任何其他路由規范。 以下示例顯示如何創建忽略的模式: ``` zuul: ignoredPatterns: /**/admin/** routes: users: /myusers/** ``` 上面例子說明請求 `/myusers/101`會轉發到users 服務的` /101` 然而 請求包含`/admin/ `不會處理 >如果您需要保留其路由順序,則需要使用YAML文件,因為使用屬性文件時排序會丟失。 以下示例顯示了這樣的YAML文件: ``` zuul: routes: users: path: /myusers/** legacy: path: /** ``` 如果您要使用屬性文件,則`legacy`路徑可能最終位于`users`路徑前面,從而導致`users`路徑無法訪問。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看