携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情
今天我们来学习一下zuul网关服务。
ZUUL工作原理:
1.针对客户端与服务直接通信产生的问题,可以使用服务网关解决。服务网关相当于介于客户端和服务端之间的中间层,所有的外部请求都会先经过服务网关进行调度和过滤。
2.服务网关除了要实现请求路由、负载均衡、过滤等功能之外,还要实现更多功能,例如与服务相关框架整合、服务请求
1.新建网关zuul模块
2.在good-zuul模块下引入eureka client和zuul两个依赖以及一个插件
<!-- 1.引入eureka client-->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- 2.引入zuul-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
</dependencies>
<!-- 3.引入插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3.引入依赖和插件之后,我们在spring-cloud-good-practice的pom.xml文件中,发现多了一个good-zuul模块
4.在good-zuul/src/main/java/新建包com.imooc.good并且创建网关启动类
@EnableZuulProxy
@SpringBootApplication
public class ZuulGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulGatewayApplication.class,args);
}
}
注意:@EnableZuulProxy一定要开启
5.在resource目录下新建application.properties并配置网关信息
spring.application.name=good-gateway
server.port=9000
logging.pattern.console=%clr(%d{${LOG_DATEFORMAT_PATTERN:HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}
eureka.client.service-url.defaultZone = http://localhost:8000/eureka/
6.启动网关服务并且访问Eureka Server地址
浏览器访问Eureka Server:http://localhost:8000/
这时候我们发现good-gateway服务已经注册上来了
7.测试利用网关端口访问good-price和good-list服务
good-price服务:
http://localhost:9000/good-price/goodsAndPrice
good-list服务
http://localhost:9000/good-list/goods
看到上面的截图信息,说明我们的网关服务已经正常运行了