温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

搭建spring cloud alibaba微服务GetWay的方法步骤

发布时间:2021-10-12 10:02:54 来源:亿速云 阅读:312 作者:iii 栏目:编程语言

本篇内容主要讲解“搭建spring cloud alibaba微服务GetWay的方法步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“搭建spring cloud alibaba微服务GetWay的方法步骤”吧!

1.GateWay是什么

概述

Cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关;

但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloud Gateway—句话:gateway是原zuul1.x版的替代

搭建spring cloud alibaba微服务GetWay的方法步骤

Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和Project Reactor等技术。

Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等。

SpringCloud Gateway是Spring Cloud的一个全新项目,基于Spring 5.0+Spring Boot 2.0和Project Reactor等技术开发的网关,它旨在为微服务架构提供—种简单有效的统一的API路由管理方式。

SpringCloud Gateway作为Spring Cloud 生态系统中的网关,目标是替代Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zul 2.0以上最新高性能版本进行集成,仍然还是使用的Zuul 1.x非Reactor模式的老版本。而为了提升网关的性能,SpringCloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty。

Spring Cloud Gateway的目标提供统一的路由方式且基于 Filter链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。

作用

方向代理
鉴权
流量控制
熔断
日志监控
微服务架构中网关的位置

搭建spring cloud alibaba微服务GetWay的方法步骤

2.配置Getway创建子工程: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   #开启从注册中心动态创建路由的功能,利用微服务名进行路由      routes:
        - id: payment_routh #payment_routh    #路由的ID,没有固定规则但要求唯一,简易配合服务名          uri: http://localhost:8001         #匹配后提供服务的路由地址#          uri: lb://cloud-provider-service   #匹配后提供服务的路由地址          predicates:
            - Path=/payment/get/**          #断言,路径相匹配的进行路由        - id: payment_routh3 #payment_routh   #路由的ID,没有固定规则但要求唯一,简易配合服务名          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的方法步骤

配置动态路由

在yml修改如下:

server:  port: 9527spring:  application:name: cloud-gateway  cloud:nacos:      discovery:server-addr: localhost:8848gateway:      discovery:locator:          enabled: true   #开启从注册中心动态创建路由的功能,利用微服务名进行路由      routes:
        - id: payment_routh #payment_routh    #路由的ID,没有固定规则但要求唯一,简易配合服务名#          uri: http://localhost:8001         #匹配后提供服务的路由地址          uri: lb://cloud-provider-service   #匹配后提供服务的路由地址          predicates:
            - Path=/payment/get/**          #断言,路径相匹配的进行路由        - id: payment_routh3 #payment_routh   #路由的ID,没有固定规则但要求唯一,简易配合服务名#          uri: http://localhost:8001          #匹配后提供服务的路由地址          uri: lb://cloud-provider-service     #匹配后提供服务的路由地址          predicates:
            - Path=/payment/lb/**             #断言,路径相匹配的进行路由

再次访问:http://localhost:9527/payment/get/1

搭建spring cloud alibaba微服务GetWay的方法步骤

需要注意的是uri的协议为lb,表示启用Gateway的负载均衡功能。

lb://serviceName是spring cloud gateway在微服务中自动为我们创建的负载均衡uri。

到此,相信大家对“搭建spring cloud alibaba微服务GetWay的方法步骤”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI