Spring Cloud Gateway整合Eureka应用
前面我们学习了路由转发,但是目标服务配置的都是外部服务的形势,那么网关能够通过注册的Eureka注册中心,实现内部服务的转发吗?答案是肯定的,下面我们来具体实现一下
下面的示例启动两个服务:service-gataway 和 eureka-client-provider 都注册到注册中心 Eureka上,客户端请求后端服务【eureka-client-provider】,网关提供后端服务的统一入口。网关通过负载均衡将客户端请求转发到具体的后端服务。
序号 | 服务名称 | 端口号 | 备注 |
---|---|---|---|
1 | gateway-server | 80 | 网关服务 |
2 | eureka-client-provider | 8080 | 服务提供者 |
3 | eureka-server | 8761 | 注册中心 |
具体实现
首先在service-gateway服务的pom.xml中添加以下依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
在工程的配置文件application.yml中,配置信息如下:
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ip-address}:${server.port}
分别启动eureka-server eureka-client-provider service-gateway 服务,在浏览器访问http://localhost:8761/,注册中心显示如下:
在浏览器访问http://localhost/eureka-client-provider/hello?name=xiaoming&token=123,返回如下:
hello, xiaoming, 我是服务提供者:端口为:8080
此时说明网关转发内部服务成功
标签: SpringCloud Gateway Eureka