1,注册服务到nacos
首先让所有服务都能被nacos给发现,具体教程:整合spring cloud+nacos
2,搭建gateway服务
然后我们建立一个服务,并引入spring gateway相关依赖
xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
⚠️ 重要 :Gateway必须使用WebFlux模型,若项目中存在spring-boot-starter-web依赖,需移除:
webflux和webmvc两套系统是冲突的。
3,配置路由规则
我们在配置文件中写上相应的路由配置,假设我们已经配置了一个名为demo的服务
yml
gateway:
routes:
- id: demo
uri: lb://demo
predicates:
- Path=/demo/**
filters:
- StripPrefix=1
其中,lb: 这个配置代表负载均衡,StripPrefix 代表要去掉的地址数,意味着在我进行路由转发的时候要去掉/demo。
4. 多实例负载均衡测试
接下来我们在idea里面找到服务列表,右键现有demo服务->编辑所选配置->修改选项->允许多个实例
再编辑这个实例的配置,用同样的找到添加虚拟机选项设置,并写上-Dserver.port=新端口号,我们就有两台同样的服务了。
我的网关服务部署在8888端口,我们提前写好相关接口/user/test
接下来我来访问4次http://localhost:8888/demo/user/test
可以看到两台服务各打印了两次