网关gateway:网关其实也是一个微服务,这个微服务是对外的一个流量入口,所有的请求通过网关进行转发到后面的微服务中,这样对于用户而言只需要记住网关的地址即可,其他的所有请求都可以经由网关转发。
在SpringCloud全家桶中,网关gateway有专门的组件。
1、添加依赖
<!--添加网关依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--添加nacos客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2、标记这个网关微服务也是一个springboot项目
@SpringBootApplication
//添加了EnableDiscoveryClient注解才会去nacos上拉取service
@EnableDiscoveryClient
public class GatewayApplication {
public static void main(String [] args){
SpringApplication.run(GatewayApplication.class,args);
}
}
3、添加配置文件application.yml
主要是为了配置转发路径
server:
port: 8888
spring:
application:
name: api-gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
gateway:
routes: #数组形式
- id: order-service #路由唯一标识
uri: lb://xdclass-order-service #lb 代表负载均衡 xdclass-order-service nacos上的服务id
order: 1 #优先级,数字越小优先级越高
predicates: #断言 配置哪个路径才转发
- Path=/order-server/**
filters: #过滤器,请求在传递过程中通过过滤器修改
- StripPrefix=1 #去掉第一层前缀
discovery:
locator:
enabled: true #开启网关拉取nacos的服务
访问路径的地址介绍:
比如当用户访问地址: localhost:8888/order-server/api/v1/video_order/list
相关参考内容
springcloud整合nacos的文章
奔跑的小梁,公众号:梁霖编程工具库springCloud服务注册中心nacos的使用
vip课程是指同学们加入我们的vip学习群,vip群里面的小伙们可以永久参加所有的直播算法刷题课程,我每天直播的时间是早上8:30-9:30,通过腾讯会议在线讲解算法刷题,语言包括c++,java和golang版本,只要加入了vip群,除了每天的直播刷题外,前45位加入的同学,我会额外赠送我所有的学习实战资料,包括docker、git、java io、leetcode算法、java源码分析、jdk新特性、kafka、linux、mybatis、mybatis plus、mysql、mysql刷题、netty、nginx、python、rabbitmq、redis、sharding jdbc、spring、springboot、springcloud、并发编程、html+css、微信支付实战所有内容的学习笔记,总共800+张的文档资料。
国庆前的推广活动:
国庆前的价格:800元/人
国庆后恢复原价为1349元/人
国庆前45位加入的同学,带大家看看我们赠送的学习文档【声明只有国庆前45位加入vip学习群的同学,才会赠送这些内容哈】,对于之前已经加入了其他课程的同学,联系我有额外的优惠,我们每天8:30-9:30上直播算法课程:
链接详情
vip课程是指同学们加入我们的vip学习群,vip群里面的小伙们可以永久参加所有的直播算法刷题课程,我每天直播的时间是早上8:30-9:30,通过腾讯会议在线讲解算法刷题,语言包括c++,java和golang版本,只要加入了vip群,除了每天的直播刷题外,前45位加入的同学,我会额外赠送我所有的学习实战资料。
奔跑的小梁,公众号:梁霖编程工具库算法班永久vip直播教学刷题来啦