接着在配置文件中加上该配置:
spring:cloud:gateway:routes:- id: user_1uri: http://localhost:8080/user/getListpredicates:- Token=abc ##使用TokenRoutePredicateFactory进行断言然后用POSTMAN发送请求,带上token参数,参数值为abc 。

文章插图
如果token的值不正确的话,会报404 。

文章插图
整合注册中心为什么要整合注册中心呢?因为每个服务一般背后都不只一台机器,而且一般使用服务名进行配置,而不是配置服务的IP地址,并且要实现负载均衡调用 。
这里我就使用Nacos作为注册中心 。
引入Maven依赖:
<dependency><!-- SpringCloud nacos服务发现的依赖 --><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Finchley.SR1</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>0.2.2.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>启动类加上注解,开启注册中心 。@SpringBootApplication@EnableDiscoveryClientpublic class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);}}在application.yml加上配置:spring:application:name: api-gatewaycloud:nacos:discovery:server-addr: 127.0.0.1:8848service: ${spring.application.name}gateway:routes:- id: consumeruri: lb://consumer #使用lb协议,consumer是服务名,不再使用IP地址配置order: 1predicates:- Path=/consumer/** #匹配/consumer/**的请求路径server:port: 9201创建一个consumer也注册到nacos,并提供一个接口:@RestControllerpublic class ConsumerController {@Value("${server.port}")private String port;@RequestMapping("consumer/getDetail/{id}")public String getDetail(@PathVariable("id") String id) {return "端口号:" + port + ",获取ID为:" + id + "的商品详情";}}启动consumer和gateway两个项目,然后打开nacos控制台,可以看到两个服务 。
文章插图
连续请求地址http://localhost:9201/consumer/getDetail/1,可以看到实现了负载均衡调用服务 。

文章插图

文章插图
可能有人会觉得每个服务都要配一个路由,很麻烦 。有个很简单的配置可以解决这个问题:
spring:gateway:discovery:locator:enabled: true然后启动服务,再试一次,请求地址需要加上服务名,依然没有问题!
文章插图
写在最后这篇文章主要介绍GateWay的路由转发功能,并且整合了注册中心 。权限控制可以用过滤器实现,由于篇幅有点长,过滤器放到下一篇文章了,感谢大家的阅读 。
觉得有用就点个赞吧,你的点赞是我创作的最大动力~
我是一个努力让大家记住的程序员 。我们下期再见!!!
【服务网关Gateway怎么玩?】
推荐阅读
- 记一次 .NET 某招聘网后端服务 内存暴涨分析
- 中考志愿服务的四大技巧
- 网关就是路由器?错了,区别很多
- 使用MobaXterm管理远程Linux服务器
- 服务器搭建网站时,是选http还是https?
- Django项目部署到服务器
- 想要管理Linux服务器,先搞清楚它的目录结构
- 为什么微服务要有独立数据库
- 95598水费查询网?95598水费网上查询自来水服务热线
- 三星空调售后服务维修中心河西区在哪-,西安三星冰箱售后维修电话-
