服务提供者1
父项目下创建maven项目,名字为cloud-eureka-pro
pom.xml
<?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">
<parent>
<artifactId>cloud-my</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-eureka-pro</artifactId>
<dependencies>
<!-- Eureka client-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- SpringMVC-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
</dependencies>
</project>
application.yml
server:
port: 80
spring:
application:
name: cloud-eureka-pro
eureka:
instance:
#修改默认状态名
instance-id: cloud-eureka-pro
client:
service-url:
# Eureka server 地址
defaultZone: http://localhost:7001/eureka/
启动类
@SpringBootApplication
@EnableEurekaClient
public class EurekaPro80 {
public static void main(String[] args) {
SpringApplication.run(EurekaPro80.class,args);
}
}
控制器
@RestController
@RequestMapping("/eureka/pro")
public class TestController {
@GetMapping("/test")
public String test(){
return "test";
}
/**
* 动态路由:测试动态负载均衡
* @return
*/
@Value("${server.port}")
private String port;
@GetMapping("/port")
public String port() {
return port;
}
}
服务提供者2
父项目下创建maven项目,名字为cloud-eureka-pro81
pom.xml
<?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">
<parent>
<artifactId>cloud-my</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-eureka-pro81</artifactId>
<dependencies>
<!-- Eureka client-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- SpringMVC-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
</dependencies>
</project>
application.yml
server:
port: 81
spring:
application:
name: cloud-eureka-pro
eureka:
instance:
#修改默认状态名
instance-id: cloud-eureka-pro81
client:
service-url:
# Eureka server 地址
defaultZone: http://localhost:7001/eureka/
启动类
@SpringBootApplication
@EnableEurekaClient
public class EurekaPro81 {
public static void main(String[] args) {
SpringApplication.run(EurekaPro81.class,args);
}
}
控制器
@RestController
@RequestMapping("/eureka/pro")
public class TestController {
@GetMapping("/test")
public String test() {
return "test";
}
/**
* 动态路由:测试动态负载均衡
* @return
*/
@Value("${server.port}")
private String port;
@GetMapping("/port")
public String port() {
return port;
}
}
网关服务配置
两个服务提供者【端口、status名不同】
网关服务添加eureka依赖并修改配置文件
<!-- Eureka client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
eureka:
client:
service-url:
# Eureka server 地址
defaultZone: http://localhost:7001/eureka/
网关服务yml配置路由
#cloud-eureka-pro/cloud-eureka-pro81【动态路由-测试负载均衡】
- id: cloud-eureka-pro-dotailuyou
uri: lb://cloud-eureka-pro
predicates:
- Path=/eureka/pro/port
访问测试
http://localhost:9527/eureka/pro/port
会根据负载均衡策略访问81和82,这里是轮询策略