- 在Gateway微服务项目中引入Eureka客户端的依赖:
<dependencies>
<!-- 引入Spring Cloud Eureka客户端依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- ... -->
</dependencies>
- 在
application.yml
中配置Eureka客户端的具体参数:
spring:
application:
name: gateway-service
cloud:
gateway:
routes:
- id: user-service # 指定Route ID
uri: lb://user-service # 指定服务实例的URI
predicates:
- Path=/user/** # 匹配路径/users/**
# 配置Eureka客户端注册中心的地址
# 如果和Eureka Server部署在同一台机器,可以使用localhost或127.0.0.1
# 如果采用Docker部署,可以用Docker容器的名字
eureka:
client:
service-url:
defaultZone: http://eureka-server:8761/eureka/
- 在启动类上添加注解
@EnableEurekaClient
:
@EnableEurekaClient
@SpringBootApplication
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
这里我们配置了一个名为user-service
的路由,将所有/user/**
的请求转发到user-service
服务上,服务的地址使用了lb://
开头,表示启用了负载均衡。
由于Gateway与Eureka集成,所以当user-service
实例数发生变化时,Gateway会自动监测到,并进行负载均衡。
当有新的请求过来时,Gateway会自动根据请求的URI来选择最合适的服务实例来处理请求。
网友评论