中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Cloud中怎么實現zuul網關服務

發布時間:2021-07-30 13:40:21 來源:億速云 閱讀:229 作者:Leah 欄目:大數據

Spring Cloud中怎么實現zuul網關服務,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

Zuul 工程創建

工程創建 cloud-gateway-zuul。還是基于之前的工程 pom文件導入

 <parent>
        <artifactId>spring-cloud-alibaba-basis</artifactId>
        <groupId>com.xian.cloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-gateway-zuul</artifactId>
    <name>網關服務zuul</name>

    <dependencies>
		<!-- 注冊中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
		<!-- 配置中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-config</artifactId>
        </dependency>
		<!-- fengin 支持 -->
       <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- zuul -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
    </dependencies>

創建GatewayZuulApplication啟動類

package com.xian.cloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * <Description>
 *
 * @author xianliru@100tal.com
 * @version 1.0
 * @createDate 2019/10/29 10:52
 */
@EnableZuulProxy
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class GatewayZuulApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewayZuulApplication.class,args);
    }
}

創建 bootstrap.yml

spring:
  profiles:
    active: dev
  application:
    name: gateway-zuul-server
  cloud:
    nacos:
      config:
        server-addr: 47.99.209.72:8848
        file-extension: yaml

zuul:
  host:
    # 目標主機的最大連接數,默認值為200
    max-total-connections: 1000
    # 每個主機的初始連接數,默認值為20
    max-per-route-connections: 200
  routes:
    discovery-server:
      path: /server/**
      serviceId: cloud-discovery-server
    client-common:
      path: /client/**
      serviceId: cloud-discovery-client
      sensitiveHeaders: X-ABC,Authorization
  # 所有路由的默認Hystrix隔離模式(ExecutionIsolationStrategy)為SEMAPHORE。如果此隔離模式是首選,則zuul.ribbonIsolationStrategy可以更改為THREAD
  ribbon-isolation-strategy: thread
  # 這個屬性意思,指定忽略的服務列表 * 代表忽略所有服務
  ignored-services: '*'
  # 字段比較敏感,不希望傳遞給下游微服務。 設置空沒有要忽略的敏感字段。全部傳給下游服務
  sensitive-headers: X-ABC
  ribbon:
    eager-load:
      # 強制加載,不設置會進行懶加載。spring 第一次請求會非常慢
      enabled: true
```



#### 參數
- zuul.host.max-total-connections 目標主機的最大連接數。
- zuul.host.max-per-route-connections 每個主機的初始連接數。

這個倆個參數是zuul的優化后的屬性值,如果想有適合的配置,還需要根據業務情況而定

因為我們有倆個業務服務 一個服務提供者 一個是服務消費者我們配置倆個服務的分別路由 discovery-server、client-common
- path  是請求路徑匹配規則
- serviceId 是我們服務的spring.application.name 對應的值。
- sensitiveHeaders 字段比較敏感,不希望傳遞給下游微服務。 設置空沒有要忽略的敏感字段。全部傳給下游服務這個字段可以是全局設置也可以是單個服務配置。
- ribbon-isolation-strategy 所有路由的默認Hystrix隔離模式(ExecutionIsolationStrategy)為SEMAPHORE。如果此隔離模式是首選,則zuul.ribbonIsolationStrategy可以更改為THREAD
-  ignored-services 忽略所有微服務,只路由指定的微服務。
-  ribbon.eager-load.enabled  true 強制加載 false 默認懶加載


true日志打印效果  false 將不打印這段日志

```
2019-10-29 23:47:11.377  INFO 61396 --- [           main] c.netflix.loadbalancer.BaseLoadBalancer  : Client: cloud-discovery-server instantiated a LoadBalancer: DynamicServerListLoadBalancer:{NFLoadBalancer:name=cloud-discovery-server,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:null
2019-10-29 23:47:11.382  INFO 61396 --- [           main] c.n.l.DynamicServerListLoadBalancer      : Using serverListUpdater PollingServerListUpdater
2019-10-29 23:47:11.450  INFO 61396 --- [           main] c.netflix.config.ChainedDynamicProperty  : Flipping property: cloud-discovery-server.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647
2019-10-29 23:47:11.452  INFO 61396 --- [           main] c.n.l.DynamicServerListLoadBalancer      : DynamicServerListLoadBalancer for client cloud-discovery-server initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=cloud-discovery-server,current list of Servers=[192.168.3.6:9012],Load balancer stats=Zone stats: {unknown=[Zone:unknown;	Instance count:1;	Active connections count: 0;	Circuit breaker tripped count: 0;	Active connections per server: 0.0;]
},Server stats: [[Server:192.168.3.6:9012;	Zone:UNKNOWN;	Total Requests:0;	Successive connection failure:0;	Total blackout seconds:0;	Last connection made:Thu Jan 01 08:00:00 CST 1970;	First connection made: Thu Jan 01 08:00:00 CST 1970;	Active Connections:0;	total failure count in last (1000) msecs:0;	average resp time:0.0;	90 percentile resp time:0.0;	95 percentile resp time:0.0;	min resp time:0.0;	max resp time:0.0;	stddev resp time:0.0]
]}ServerList:com.alibaba.cloud.nacos.ribbon.NacosServerList@33e4b9c4
2019-10-29 23:47:11.576  INFO 61396 --- [           main] c.netflix.config.ChainedDynamicProperty  : Flipping property: cloud-discovery-client.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647
2019-10-29 23:47:11.577  INFO 61396 --- [           main] c.netflix.loadbalancer.BaseLoadBalancer  : Client: cloud-discovery-client instantiated a LoadBalancer: DynamicServerListLoadBalancer:{NFLoadBalancer:name=cloud-discovery-client,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:null
2019-10-29 23:47:11.578  INFO 61396 --- [           main] c.n.l.DynamicServerListLoadBalancer      : Using serverListUpdater PollingServerListUpdater
2019-10-29 23:47:11.639  INFO 61396 --- [           main] c.netflix.config.ChainedDynamicProperty  : Flipping property: cloud-discovery-client.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647
2019-10-29 23:47:11.640  INFO 61396 --- [           main] c.n.l.DynamicServerListLoadBalancer      : DynamicServerListLoadBalancer for client cloud-discovery-client initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=cloud-discovery-client,current list of Servers=[192.168.3.6:9011],Load balancer stats=Zone stats: {unknown=[Zone:unknown;	Instance count:1;	Active connections count: 0;	Circuit breaker tripped count: 0;	Active connections per server: 0.0;]
},Server stats: [[Server:192.168.3.6:9011;	Zone:UNKNOWN;	Total Requests:0;	Successive connection failure:0;	Total blackout seconds:0;	Last connection made:Thu Jan 01 08:00:00 CST 1970;	First connection made: Thu Jan 01 08:00:00 CST 1970;	Active Connections:0;	total failure count in last (1000) msecs:0;	average resp time:0.0;	90 percentile resp time:0.0;	95 percentile resp time:0.0;	min resp time:0.0;	max resp time:0.0;	stddev resp time:0.0]
]}ServerList:com.alibaba.cloud.nacos.ribbon.NacosServerList@256589a1
```

將三個服務全部啟動。服務提供者和服務消費者還有zuul 服務
在控制臺 輸入命令 curl http://localhost:9083/client/client/test
![file](https://cache.yisu.com/upload/information/20210524/347/785552.png)
我們看到打印效果,請求通過網關服務成功轉發到了我們的下游服務上。并返回


- ribbon-isolation-strategy
- ignored-services
- sensitiveHeaders

關于Spring Cloud中怎么實現zuul網關服務問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

电白县| 溆浦县| 梅州市| 长宁区| 吉林省| 大名县| 贺州市| 象山县| 民丰县| 普格县| 江阴市| 龙山县| 日喀则市| 霍林郭勒市| 内乡县| 新龙县| 莎车县| 正镶白旗| 巨野县| 竹山县| 永德县| 健康| 木里| 巴彦淖尔市| 枣庄市| 普兰店市| 凤山市| 福建省| 长岭县| 郁南县| 阜阳市| 白沙| 盐边县| 牡丹江市| 云霄县| 西乌珠穆沁旗| 新巴尔虎右旗| 大兴区| 涪陵区| 治多县| 肥城市|