Spring Cloud Alibaba 整合gateway

网关是什么

网关是所有服务请求的一个统一入口,方便我们对服务请求与响应做统一的管理
在这里插入图片描述
网关的核心功能是路由转发,同时还可以做限流、熔断、日志监控、认证

为什么我们需要网关

我们在微服务架构的时候,把我们的业务员拆分为一个个小的服务,他们由不同的团队进行开发、测试、部署,而一个微服务为了高可用一般都需要部署多实例。如果我们让客户端直接调用服务:

  • 会增加客户端的配置成本
  • 服务端没办法对调用做统一管理
  • 每个服务都需要去做权限认证
  • 如果服务部署地址发生变化,则客户端需要修改服务调用地址
spring cloud gateway介绍

Spring Cloud Gateway是Spring官方提供的基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关。他是Spring cloud生态的第二代网关,旨在替代ZUUL(第一代)。Spring Cloud Gateway的底层是基于Netty、Reactor、WebFlux构建的。其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。
优点:

  • 性能强劲
  • 功能强大,内置很多实用功能,不如转发、监控、限流。
  • 设计优雅,易于扩展

缺点:

  • 依赖Netty与WebFlux,不是Servlet编程模型
  • 不能再Servler容器下工作,也不能达成WAR包
  • 不支持Spring Boot 1.X
Spring Cloud Gateway 核心概念
  • Route(路由):spring cloud Gateway的基础元素,可以简单理解成一条转发规则。包含ID、目标URL、Predicate集合一级Filter集合。
  • Predicate(谓词):即java.util.function.Predicate,spring cloud Gateway使用Predicate实现路由的匹配条件
  • Filter(过滤器):修改请求以及响应
Spring Cloud Gateway 架构

在这里插入图片描述

  • 客户端发送请求到网关
  • Gateway Handler Mapping 依据Predicate来判断请求路径是否匹配路由的配置,如果匹配,则请求发送的Gateway Web Handler
  • Gateway Web Handler读取路由上的Filter,然后把请求交给Filter处理
  • Filter被中间虚线分开,左边(“pre” filter)是发送请求到微服务之前处理的,右边(“post” filter)是请求从服务返回到网关之后处理的
Route Predicate Factories(路由谓词工厂)

Spring Cloud Gateway 提供了11中内置好的谓词工厂。这里就不一一去做演示了,可以参考官方文档Spring Cloud Gateway谓词工厂
在这里插入图片描述

整合spring cloud gateway
引入jar包

   <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>
写配置
server.port=9003
# Nacos注册时候的名称
spring.application.name=micro-provider

# Nacos 注册中心配置地址(无需配置 HTTP 协议部分)
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

#让gateway通过服务发现组件找到其他微服务
spring.cloud.gateway.discovery.locator.enabled=true
测试

这里分别启动micro-provider、micro-gateway两个服务
在这里插入图片描述
直接调用
http://localhost:9003/echo/123
在这里插入图片描述

通过网关
http://localhost:9004/micro-provider/echo/gateway%E8%AF%B7%E6%B1%82
在这里插入图片描述
两次都可以请求通,这里gateway会自动去nacos拉取服务列表,依据路由规则做转发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring CloudSpring Cloud Alibaba都是基于Spring Framework的开源框架,用于构建分布式系统和微服务架构。它们都提供了一系列的组件和工具来简化微服务开发和管理。 Spring Cloud是一个由Pivotal团队维护的项目,它集成了Netflix开源的一些组件,如Eureka作为注册中心、Ribbon作为负载均衡器、Feign作为服务调用工具等。同时,Spring Cloud还提供了其他功能,如Config Server用于动态管理配置、Gateway用于构建API网关等。 而Spring Cloud Alibaba则是阿里巴巴开源的项目,它在Spring Cloud的基础上进行了扩展和定制,增加了一些阿里巴巴自己的组件和工具。比如,它使用Nacos作为注册中心和配置中心,使用Sentinel作为熔断降级工具。 总的来说,Spring CloudSpring Cloud Alibaba都是用于构建微服务架构的框架,它们的区别在于Spring Cloud集成了Netflix组件,而Spring Cloud Alibaba集成了阿里巴巴的一些组件。根据具体的需求和技术栈选择使用哪个框架可以更好地满足开发和管理微服务的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Spring Cloud AlibabaSpring Cloud的区别](https://blog.csdn.net/weixin_43888891/article/details/126653270)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值