<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## url方式 ~~~ zuul: routes: haha: #key可以隨便寫 path: /user-service/** #匹配user-service為前綴的所有路徑,并且把**部分的路徑轉發到下面的url url: http://127.0.0.1:8082 #匹配user為前綴的所有路徑轉發到此地址 ~~~ 測試: ![](https://box.kancloud.cn/cfc53a6f538a7db2b385202c2bcfef58_2148x632.png) ## 面向服務的路由 在上面的路由規則中,我們把路徑對應的服務地址寫死了!如果同一服務有多個實例的話,這樣做顯然就不合理了。 我們應該根據服務的名稱,去Eureka注冊中心查找 服務對應的所有實例列表,然后進行動態路由才對! 因為Zuul已經引入了ribbon,所以使用面向服務的路由已經自動完成了負載均衡. 引入eureka依賴: ~~~ <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> <version>2.0.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>2.0.1.RELEASE</version> </dependency> </dependencies> ~~~ **啟動類加上@EnableDiscoveryClient注解用來發現服務.** 配置: ~~~ server: port: 10010 spring: application: name: api-gateway eureka: client: service-url: defaultZone: http://127.0.0.1:10086/eureka #將當前服務注冊到eureka zuul: routes: haha: #key可以隨便寫 path: /user-service/** #匹配user-service為前綴的所有路徑,并且把**部分的路徑轉發到下面的服務 serviceId: consumer-server #這里是服務的ID ~~~ 測試: ![](https://box.kancloud.cn/af5735b92accbe88a825c51f4e48e93e_2100x626.png) ## 簡化路由配置 ~~~ zuul: routes: consumer-server: /user-service/** #key是服務的ID,值是服務的映射路徑 ~~~ **我們并沒有配置consumer-server,但是也可以訪問.因為這種配置方法太常見了,服務的ID配置為映射的路徑,所以zuul將eureka的服務列表全部拉取下來,自動默認實現了將服務ID作為映射的前綴.也就是說我們可以什么都不用配置了,也可以實現請求轉發.** ![](https://box.kancloud.cn/a8d161be475eeb696a6a61da1d23108e_2170x666.png) ## 去掉url中的服務ID 通過下面的方式去訪問顯得url太長了,并且也暴露了服務的ID.通過配置可以簡化URL. ``` http://localhost:10010/api/user-server/user/1 ``` ~~~ zuul: prefix: /api #路由前綴 routes: user-server: path: /user/** serviceId: user-server strip-prefix: false #默認是true,我們改成false,這樣就不會將映射的前綴修剪掉(保留下來).配置在服務下面是局部的. ~~~ 測試:達到了我們需要的效果. ![](https://box.kancloud.cn/255be8881e8e9fb3905449a4458a7475_1698x974.png) ## 全局strip-prefix: false ~~~ zuul: prefix: /api #全局的只對這一項起作用,默認為true,我們基本不需要配置,因為沒什么用. strip-prefix: false ~~~ ## 隱藏服務不對外暴露 有些服務比較敏感,我們不希望對外暴露,只希望服務間的內部訪問. ~~~ zuul: routes: consumer-server: /user-service/** #key是服務的ID,值是服務的映射路徑 ignored-services: - yyy-server #將不需要對外暴露的服務寫在此處,注意是一個集合 - xxx-server ~~~ ## 路由前綴 這樣所有的訪問都要加上api前綴,因為Java現在一般都是只提供接口了,所以加上此前綴比較好. ~~~ zuul: prefix: /api #路由前綴 ~~~
                  <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>

                              哎呀哎呀视频在线观看