溫馨提示×

溫馨提示×

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

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

搭建spring cloud alibaba微服務GetWay的方法步驟

發(fā)布時間:2021-10-12 10:02:54 來源:億速云 閱讀:311 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“搭建spring cloud alibaba微服務GetWay的方法步驟”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“搭建spring cloud alibaba微服務GetWay的方法步驟”吧!

1.GateWay是什么

概述

Cloud全家桶中有個很重要的組件就是網(wǎng)關,在1.x版本中都是采用的Zuul網(wǎng)關;

但在2.x版本中,zuul的升級一直跳票,SpringCloud最后自己研發(fā)了一個網(wǎng)關替代Zuul,那就是SpringCloud Gateway—句話:gateway是原zuul1.x版的替代

搭建spring cloud alibaba微服務GetWay的方法步驟

Gateway是在Spring生態(tài)系統(tǒng)之上構建的API網(wǎng)關服務,基于Spring 5,Spring Boot 2和Project Reactor等技術。

Gateway旨在提供一種簡單而有效的方式來對API進行路由,以及提供一些強大的過濾器功能,例如:熔斷、限流、重試等。

SpringCloud Gateway是Spring Cloud的一個全新項目,基于Spring 5.0+Spring Boot 2.0和Project Reactor等技術開發(fā)的網(wǎng)關,它旨在為微服務架構提供—種簡單有效的統(tǒng)一的API路由管理方式。

SpringCloud Gateway作為Spring Cloud 生態(tài)系統(tǒng)中的網(wǎng)關,目標是替代Zuul,在Spring Cloud 2.0以上版本中,沒有對新版本的Zul 2.0以上最新高性能版本進行集成,仍然還是使用的Zuul 1.x非Reactor模式的老版本。而為了提升網(wǎng)關的性能,SpringCloud Gateway是基于WebFlux框架實現(xiàn)的,而WebFlux框架底層則使用了高性能的Reactor模式通信框架Netty。

Spring Cloud Gateway的目標提供統(tǒng)一的路由方式且基于 Filter鏈的方式提供了網(wǎng)關基本的功能,例如:安全,監(jiān)控/指標,和限流。

作用

方向代理
鑒權
流量控制
熔斷
日志監(jiān)控
微服務架構中網(wǎng)關的位置

搭建spring cloud alibaba微服務GetWay的方法步驟

2.配置Getway創(chuàng)建子工程:cloud-getway-getway9527

3.pom文件添加如下:

<dependencies>    <!--gateway-->    <dependency>        <groupId>org.springframework.cloud</groupId>        <artifactId>spring-cloud-starter-gateway</artifactId>    </dependency>    <dependency>        <groupId>com.alibaba.cloud</groupId>        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>    </dependency>    <!--引入自定義的api通用包,可使用Payment支付Entity-->    <dependency>        <groupId>com.yxw.springcloud</groupId>        <artifactId>cloud-api-commons</artifactId>        <version>${project.version}</version>    </dependency>    <!--一般基礎配置類-->    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-devtools</artifactId>        <scope>runtime</scope>        <optional>true</optional>    </dependency>    <dependency>        <groupId>org.projectlombok</groupId>        <artifactId>lombok</artifactId>        <optional>true</optional>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-test</artifactId>        <scope>test</scope>    </dependency></dependencies>

4.yml文件添加如下:

server:  port: 9527spring:  application:name: cloud-gateway  cloud:nacos:      discovery:server-addr: localhost:8848gateway:      discovery:locator:          enabled: true   #開啟從注冊中心動態(tài)創(chuàng)建路由的功能,利用微服務名進行路由      routes:
        - id: payment_routh #payment_routh    #路由的ID,沒有固定規(guī)則但要求唯一,簡易配合服務名          uri: http://localhost:8001         #匹配后提供服務的路由地址#          uri: lb://cloud-provider-service   #匹配后提供服務的路由地址          predicates:
            - Path=/payment/get/**          #斷言,路徑相匹配的進行路由        - id: payment_routh3 #payment_routh   #路由的ID,沒有固定規(guī)則但要求唯一,簡易配合服務名          uri: http://localhost:8001          #匹配后提供服務的路由地址#          uri: lb://cloud-provider-service     #匹配后提供服務的路由地址          predicates:
            - Path=/payment/lb/**             #斷言,路徑相匹配的進行路由

5.啟動類:

@SpringBootApplication@EnableDiscoveryClientpublic class GetwayApplication {public static void main(String[] args) {
        SpringApplication.run(GetwayApplication.class,args);    }
}

6.啟動服務并訪問:http://localhost:9527/payment/get/1

搭建spring cloud alibaba微服務GetWay的方法步驟

配置動態(tài)路由

在yml修改如下:

server:  port: 9527spring:  application:name: cloud-gateway  cloud:nacos:      discovery:server-addr: localhost:8848gateway:      discovery:locator:          enabled: true   #開啟從注冊中心動態(tài)創(chuàng)建路由的功能,利用微服務名進行路由      routes:
        - id: payment_routh #payment_routh    #路由的ID,沒有固定規(guī)則但要求唯一,簡易配合服務名#          uri: http://localhost:8001         #匹配后提供服務的路由地址          uri: lb://cloud-provider-service   #匹配后提供服務的路由地址          predicates:
            - Path=/payment/get/**          #斷言,路徑相匹配的進行路由        - id: payment_routh3 #payment_routh   #路由的ID,沒有固定規(guī)則但要求唯一,簡易配合服務名#          uri: http://localhost:8001          #匹配后提供服務的路由地址          uri: lb://cloud-provider-service     #匹配后提供服務的路由地址          predicates:
            - Path=/payment/lb/**             #斷言,路徑相匹配的進行路由

再次訪問:http://localhost:9527/payment/get/1

搭建spring cloud alibaba微服務GetWay的方法步驟

需要注意的是uri的協(xié)議為lb,表示啟用Gateway的負載均衡功能。

lb://serviceName是spring cloud gateway在微服務中自動為我們創(chuàng)建的負載均衡uri。

到此,相信大家對“搭建spring cloud alibaba微服務GetWay的方法步驟”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

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

AI