欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

SpringCloud中API網(wǎng)關(guān)服務(wù)Zuul的示例分析-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Spring Cloud中API網(wǎng)關(guān)服務(wù)Zuul的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“Spring Cloud中API網(wǎng)關(guān)服務(wù)Zuul的示例分析”這篇文章吧。

夏河ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

構(gòu)建網(wǎng)關(guān)

網(wǎng)關(guān)的構(gòu)建我們通過下面三個步驟來實現(xiàn)。

1.創(chuàng)建Spring Boot工程并添加依賴

首先我們創(chuàng)建一個普通的Spring Boot工程名為api-gateway,然后添加相關(guān)依賴,這里我們主要添加兩個依賴spring-cloud-starter-zuul和spring-cloud-starter-eureka,spring-cloud-starter-zuul依賴中則包含了ribbon、hystrix、actuator等,如下:

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>1.5.7.RELEASE</version>
  <relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
  <spring-cloud.version>Dalston.SR3</spring-cloud.version>
</properties>
<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zuul</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
  </dependency>
</dependencies>
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>${spring-cloud.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

2.添加注解

然后在入口類上添加@EnableZuulProxy注解表示開啟Zuul的API網(wǎng)關(guān)服務(wù)功能,如下:

@SpringBootApplication
@EnableZuulProxy
public class ApiGatewayApplication {

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

3.配置路由規(guī)則

application.properties文件中的配置可以分為兩部分,一部分是Zuul應(yīng)用的基礎(chǔ)信息,還有一部分則是路由規(guī)則,如下:

# 基礎(chǔ)信息配置
spring.application.name=api-gateway
server.port=2006
# 路由規(guī)則配置
zuul.routes.api-a.path=/api-a/**
zuul.routes.api-a.serviceId=feign-consumer

# API網(wǎng)關(guān)也將作為一個服務(wù)注冊到eureka-server上
eureka.client.service-url.defaultZone=http://localhost:1111/eureka/

我們在這里配置了路由規(guī)則所有符合/api-a/**的請求都將被轉(zhuǎn)發(fā)到feign-consumer服務(wù)上,至于feign-consumer服務(wù)的地址到底是什么則由eureka-server去分析,我們這里只需要寫上服務(wù)名即可。以上面的配置為例,如果我請求 http://localhost:2006/api-a/hello1 接口則相當于請求 http://localhost:2005/hello1 (我這里feign-consumer的地址為 http://localhost:2005 ),我們在路由規(guī)則中配置的api-a是路由的名字,可以任意定義,但是一組path和serviceId映射關(guān)系的路由名要相同。

OK,做好這些之后,我們依次啟動我們的eureka-server、provider和feign-consumer,然后訪問如下地址 http://localhost:2006/api-a/hello1 ,訪問結(jié)果如下:

Spring Cloud中API網(wǎng)關(guān)服務(wù)Zuul的示例分析

看到這個效果說明我們的API網(wǎng)關(guān)服務(wù)已經(jīng)構(gòu)建成功了,我們發(fā)送的符合路由規(guī)則的請求自動被轉(zhuǎn)發(fā)到相應(yīng)的服務(wù)上去處理了。

請求過濾

構(gòu)建好了網(wǎng)關(guān),接下來我們就來看看如何利用網(wǎng)關(guān)來實現(xiàn)一個簡單的權(quán)限驗證。這里就涉及到了Spring Cloud Zuul中的另外一個核心功能:請求過濾。請求過濾有點類似于Java中Filter過濾器,先將所有的請求攔截下來,然后根據(jù)現(xiàn)場情況做出不同的處理,這里我們就來看看Zuul中的過濾器要如何使用。很簡單,兩個步驟:

1.定義過濾器

首先我們定義一個過濾器繼承自ZuulFilter,如下:

public class PermisFilter extends ZuulFilter {
  @Override
  public String filterType() {
    return "pre";
  }

  @Override
  public int filterOrder() {
    return 0;
  }

  @Override
  public boolean shouldFilter() {
    return true;
  }

  @Override
  public Object run() {
    RequestContext ctx = RequestContext.getCurrentContext();
    HttpServletRequest request = ctx.getRequest();
    String login = request.getParameter("login");
    if (login == null) {
      ctx.setSendZuulResponse(false);
      ctx.setResponseStatusCode(401);
      ctx.addZuulResponseHeader("content-type","text/html;charset=utf-8");
      ctx.setResponseBody("非法訪問");
    }
    return null;
  }
}

關(guān)于這個類我說如下幾點:

1.filterType方法的返回值為過濾器的類型,過濾器的類型決定了過濾器在哪個生命周期執(zhí)行,pre表示在路由之前執(zhí)行過濾器,其他可選值還有post、error、route和static,當然也可以自定義。

2.filterOrder方法表示過濾器的執(zhí)行順序,當過濾器很多時,這個方法會有意義。

3.shouldFilter方法用來判斷過濾器是否執(zhí)行,true表示執(zhí)行,false表示不執(zhí)行,在實際開發(fā)中,我們可以根據(jù)當前請求地址來決定要不要對該地址進行過濾,這里我直接返回true。

4.run方法則表示過濾的具體邏輯,假設(shè)請求地址中攜帶了login參數(shù)的話,則認為是合法請求,否則就是非法請求,如果是非法請求的話,首先設(shè)置ctx.setSendZuulResponse(false);表示不對該請求進行路由,然后設(shè)置響應(yīng)碼和響應(yīng)值。這個run方法的返回值在當前版本(Dalston.SR3)中暫時沒有任何意義,可以返回任意值。

2.配置過濾器Bean

然后在入口類中配置相關(guān)的Bean即可,如下:

@Bean
PermisFilter permisFilter() {
  return new PermisFilter();
}

此時,如果我們訪問 http://localhost:2006/api-a/hello1 ,結(jié)果如下:

Spring Cloud中API網(wǎng)關(guān)服務(wù)Zuul的示例分析

如果給請求地址加上login參數(shù),則結(jié)果如下:

Spring Cloud中API網(wǎng)關(guān)服務(wù)Zuul的示例分析

以上是“Spring Cloud中API網(wǎng)關(guān)服務(wù)Zuul的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標題:SpringCloud中API網(wǎng)關(guān)服務(wù)Zuul的示例分析-創(chuàng)新互聯(lián)
本文路徑:http://aaarwkj.com/article48/ccjihp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、App開發(fā)微信公眾號、小程序開發(fā)、外貿(mào)網(wǎng)站建設(shè)、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
日本亚洲精品在线观看| 日本欧美精品一区二区三区| 亚洲av毛片在线免费播放| 国产精品一区二区在线观看| 日韩在线视频精品一区| 日韩精品成人亚洲天堂| 香蕉久草官网视频观看| 国产精品成人一区二区艾草| 97精品在线免费视频| 欧美香蕉在线观看视频| 国产在线观看国产精品| 亚洲一区二区三区伊人| 久久精品国产亚洲av不丁香| 黄色日韩大片在线观看| 无遮挡动漫网站免费观看| 中文字幕成人在线电影| 国产精品综合久久久久久| 国产精品久久久久久久亚洲| 日韩高清亚洲一区二区| 性生活视性生活大片日本| 国产亚洲精品女人久久久| 美女口爆吞精一区二区| 不卡av免费在线网址| 日韩性生活视频免费播放| 国产精品自偷自偷自偷| 亚洲三级成人一区在线| 午夜福利在线视频观看| 国产三级精品在线免费| 加勒比人妻一区二区三区| 国产丝袜肉丝在线播放| 日韩成人精品一区欧美成人| 蜜桃在线视频在线观看| 99精品国产综合久久麻豆| 五月天丁香婷婷深爱| 日韩av在线播放亚洲天堂| 亚洲最大五月六月丁香婷婷| 2021天天操夜夜爽| av剧情网址在线观看| 亚洲三区四区视频在线观看| 日本免费熟女一区二区| 国产一区二区在线乱码|