赞
踩
https://ke.qq.com/course/2805647?tuin=a3e3fb1&from_uin=171851697&from=1000201007
前面我们学习了路由转发,但是目标服务配置的都是外部服务的形势,那么网关能够通过注册的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
此时说明网关转发内部服务成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。