网站风格代码,自助建站百度,网站如何做才容易被搜索到,美图秀秀在线制作照片目录
前言
准备
项目集成
pom.xml引入依赖
启动类
yml文件添加网关配置
修改消费者FeignService类
结果验证 前言
Spring cloud alibaba 体系中构建微服务#xff0c;我们使用Spring Cloud Gateway 作为服务网关#xff0c; Gateway是Spring 官方推出的一款基于 Web…目录
前言
准备
项目集成
pom.xml引入依赖
启动类
yml文件添加网关配置
修改消费者FeignService类
结果验证 前言
Spring cloud alibaba 体系中构建微服务我们使用Spring Cloud Gateway 作为服务网关 Gateway是Spring 官方推出的一款基于 WebFlux 的高性能、轻量级网关框架支持动态路由、限流熔断、过滤器链等功能且与 Spring 生态深度集成易于上手并具有广泛的社区支持 。 Tips! 为什么不使用阿里系的网关 Higress 而是选择spring cloud gateway Alibaba 没有重复造轮子去开发一个类似 Gateway 的通用网关而是专注于更前沿的 云原生场景打造了 Higress。Higress 针对 Kubernetes 场景进行了深度优化支持 Istio、服务网格等技术是为云原生时代的分布式服务架构量身定制的网关解决方案。 Spring Cloud Gateway 已经是一个非常成熟和高效的网关解决方案能够满足大多数微服务场景的需求与Spring 生态的深度整合适配性和易用性都非常优秀。因此在传统的 Spring 微服务体系中使用 Gateway 已经足够。 这种明确的分工让两者在各自的场景中都发挥了最大优势而不是功能上的重复建设。在spring cloud alibaba 的官方github试例代码中也是使用的Gateway。 准备
jdk17maven3.9.4idea2023spring cloud: 2023.0.1.0spring cloud alibaba: 2023.0.1
源码获取GitHub - RemainderTime/spring-cloud-alibaba-base-demo: 基于spring cloud alibaba生态快速构建微服务脚手架
项目集成
创建一个网关服务cloud-gateway
那么目前有三个服务项目 pom.xml引入依赖
在网关服务gateway中引入依赖
!-- API网关 gateway--
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId
/dependency
!-- Spring Boot Actuator --
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId
/dependency
!-- 负载均衡 loadbalancer --
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId
/dependency
启动类
启动类上依然加上注解EnableDiscoveryClient作为一个服务注册到nacos中 yml文件添加网关配置
server:port: 9090
spring:application:name: cloud-gateway # 网关服务的名称cloud:gateway:discovery:locator:enabled: true # 开启自动服务发现routes:- id: http-producer-routeuri: lb://http-cloud-producer #生产者服务名称predicates:- Path/test/** # 匹配路径 /test/...
# filters:
# - RewritePath/test/(?segment.*), /test/feign/${segment} # 重写为生产者的接口路径 uri:这个属性为生产者在注册中心的服务名称 Path这个属性为生产者提供的接口路径路由 注册中心配置相关和前面服务一样可参考前面的nacos集成篇
修改消费者FeignService类
FeignClient(name cloud-gateway)
public interface FeignService {}
主要就是修改注解中的服务名称将之前的生产者服务名称修改为网关的服务名称。
消费者向请求网关服务在通过网关服务路由转发到生产者 结果验证 至此网关配置成功了