掘金日新计划 · 8 月更文挑战第23天--网关服务zuul

89 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情

今天我们来学习一下zuul网关服务。
ZUUL工作原理:
1.针对客户端与服务直接通信产生的问题,可以使用服务网关解决。服务网关相当于介于客户端和服务端之间的中间层,所有的外部请求都会先经过服务网关进行调度和过滤。
2.服务网关除了要实现请求路由、负载均衡、过滤等功能之外,还要实现更多功能,例如与服务相关框架整合、服务请求

1.新建网关zuul模块

image.png

2.在good-zuul模块下引入eureka client和zuul两个依赖以及一个插件

image.png

<!--    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模块

image.png

4.在good-zuul/src/main/java/新建包com.imooc.good并且创建网关启动类

image.png

@EnableZuulProxy
@SpringBootApplication
public class ZuulGatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZuulGatewayApplication.class,args);
    }
}

注意:@EnableZuulProxy一定要开启

5.在resource目录下新建application.properties并配置网关信息

image.png

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地址

image.png 浏览器访问Eureka Server:http://localhost:8000/ image.png 这时候我们发现good-gateway服务已经注册上来了

7.测试利用网关端口访问good-price和good-list服务

good-price服务:
http://localhost:9000/good-price/goodsAndPrice image.png good-list服务 http://localhost:9000/good-list/goods image.png 看到上面的截图信息,说明我们的网关服务已经正常运行了