资讯专栏INFORMATION COLUMN

SpringCloud Gateway实现网关

IT那活儿 / 2505人阅读
SpringCloud Gateway实现网关
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!! 





网关介绍


对于微服务架构来说,系统内的各个模块都可能对外提供服务,此时就需要一个API网关的角色,它位于所有服务之前,用来提供鉴权管理、路由转发、流量控制等。

网关是用来对于API服务的访问进行统一管理,使得应用内的接口服务对调用者透明。



Gateway介绍

SpringCloud Gateway是Spring官方基于Spring5.0、SpringBoot2.0和Project Reactor等技术实现的网关,目的是为微服务架构提供一种简单统一的API路由管理方式。
Gateway核心概念包括Route、Predicate、过滤器,作为所有API接口的接入点,同时也是所有后端服务的聚合点,实现安全、路由、过滤等策略,对所有API服务和策略统一管理。




实  现

新建一个SpringBoot工程,引入spring-cloud和spring-cloud-alibaba的依赖,需要注意两者版本对应关系。
引入gateway的依赖:
由于需要用nacos作为注册中心实现负载均衡形式转发,所以引入nacos依赖:
项目启动类加入@EnableDiscoveryClient,实现项目启动后能在nacos的web端界面看到服务的相关信息,并且具备拉取服务信息的功能。
配置文件加入nacos配置:
配置文件加入gateway配置:
上面配置了一个路由规则,id为xxx-interface,当请求的路径为/xxx-interface/**时将请求通过负载均衡转发到服务名为xxx-interface的服务上,从nacos上根据服务名获取服务真实地址进行转发。
StripPrefix=1表示将请求的前缀去除一个,由于前缀的第一个是用来区分调用哪个服务的,请求转发后需要去除。
Gateway提供的路由策略有很多,例如Header、Host、Method、Query等,示例采用最常见的Path来做路由。



效果展示

上面新建了一个网关服务xxxxx-axz-gateway,以及一个提供接口服务的xxx-interface工程,期望通过网关服务访问接口服务的/interface/auth/pubkey接口。
分别启动两个服务,在nacos中可以看到两个服务均已启动,其中xxx-interface启动在8090端口,xxxxx-axz-gateway启动在8081端口。
先直接访问xxx-interface的接口服务,接口正常。
通过xxxxx-axz-gateway访问接口,可以看到响应结果一致,路由转发成功。


END



本文作者:孙涛涛

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129459.html

相关文章

  • SpringCloud组件: GateWay整合Eureka转发服务请求

    摘要:单服务我们简单编写一个请求地址,输出字符串信息,添加依赖如下所示配置文件如下所示服务名注册到服务端口号配置该服务的服务名称为,这里对应的。 在上一篇文章Spring Cloud GateWay 路由转发规则介绍中我们讲解了SpringCloud Gateway内部提供的断言、谓语,让我们可以组合更精确的业务场景进行请求,既然SpringCloud GateWay担任了网关的角色,在之前...

    warmcheng 评论0 收藏0
  • SpringCloud升级之路2020.0.x版-41. SpringCloudGateway 基本

    摘要:将请求封装成将请求封装成的接口定义是但是最外层传进来的参数是和,需要将他们封装成,这个工作就是在中做的。其实主要任务就是将各种参数封装成除了和本次请求相关的和,还有会话管理器,编码解码器配置,国际化配置还有用于扩展。本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent接下来,将进入我们升级之路的又一大模块,即网关模块。网关模块我们废弃了...

    不知名网友 评论0 收藏0
  • SpringCloud(第 022 篇)Zuul 网关微服务的regexmapper属性测试, 类似

    摘要:地址可以查看该微服务网关代理了多少微服务的。微服务已启动使用提供和之间的绑定它使用正则表达式组来从提取变量然后注入到路由表达式中。 SpringCloud(第 022 篇)Zuul 网关微服务的 regexmapper 属性测试, 类似测试 zuul 的自定义路径规则一样 - 一、大致介绍 1、本章节将 Zuul 的 regexmapper 属性单独拿出来,主要是这种配置规则,可以在一...

    cyqian 评论0 收藏0
  • SpringCloud(第 020 篇)Zuul 网关模块添加 listOfServers 属性,达

    摘要:注意注解能注册到服务上,是因为该注解包含了客户端的注解,该是一个复合注解。地址可以查看该微服务网关代理了多少微服务的。 SpringCloud(第 020 篇)Zuul 网关模块添加 listOfServers 属性,达到客户端负载均衡的能力 - 一、大致介绍 1、本章节添加另外一个属性 listOfServers 来给 zuul 赋上异样的功能色彩,提供负载均衡的能力; 2、而其实说...

    Dogee 评论0 收藏0
  • 如何使用SpringCloud进行灰度发布

    摘要:灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。如何使用进行灰度发布呢将分一下四步第一,设置网关权重路由设置中提供了去实现根据分组设置权重进行路由,因此使用起来相对比较简单,有兴趣的可以阅读源码。 灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那...

    Jackwoo 评论0 收藏0
  • SpringCloud(第 018 篇)Zuul 服务 API 网关微服务之代理与反向代理

    摘要:注意注解能注册到服务上,是因为该注解包含了客户端的注解,该是一个复合注解。地址可以查看该微服务网关代理了多少微服务的。 SpringCloud(第 018 篇)Zuul 服务 API 网关微服务之代理与反向代理 - 一、大致介绍 1、API 服务网关顾名思义就是统一入口,类似 nginx、F5 等功能一样,统一代理控制请求入口,弱化各个微服务被客户端记忆功能; 2、本章节主要讲解了使用...

    YancyYe 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<