之前我们使用网关使用了服务的ip地址,但是这种配置不利于流量的分散
效果图
接口调用了三次,我启动了两个服务,一个服务打印了两次,另一个服务打印了一次,说明实现了负载的功能
网关代码部分
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.java</groupId> <artifactId>gateway-service</artifactId> <version>1.0-SNAPSHOT</version> <!--spring boot 父启动器依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> </parent> <dependencyManagement> <!--spring cloud依赖版本管理--> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!--客户端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <!--GateWay 网关--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <finalName>gateway-service</finalName> </build> </project>
server.port=2001 eureka.instance.hostname=127.0.0.1 eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8761/eureka spring.application.name=gateway-service eureka.instance.prefer-ip-address=true eureka.instance.ip-address=127.0.0.1 eureka.instance.instance-id=${eureka.instance.ip-address}:${server.port} spring.cloud.loadbalancer.ribbon.enabled=false spring.cloud.gateway.routes[0].id=qiuxie_route spring.cloud.gateway.routes[0].uri=lb://vipday-service spring.cloud.gateway.routes[0].predicates[0]=Path=/** logging.level.com.java=debug logging.level.web=debug spring.devtools.add-properties=false
package com.java; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; /** * @Description: * @Author: qiuxie * @Create: 2023/8/17 17:45 */ @EnableDiscoveryClient @SpringBootApplication public class GatewayApplication { public static void main(String[] args) { SpringApplication.run(GatewayApplication.class,args); } }
spring.profiles.active=two
对应的服务部分
将该服务注册到注册中心即可