SpringCloud-Zuul-01入门介绍

2019-06-22  本文已影响0人  小亮__

网关的作用

微服务一般会有不同的网络地址,而客户端(如手机APP,PC,H5等),可能为了完成一个业务需要调用不同服务的接口。例如电商平台APP,可能需要调用多个微服务接口,才能完成一次下单


如果让客户端直接与各个微服务通信,会有以下的问题:

以上问题可借助微服务网关解决。微服务网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过微服务网关。使用微服务网关后,架构如下所示。


Zuul简介

Zuul 是netflix开源的微服务网关, 本质上是一个web servlet应用。在SpringCloud中,可以与consul,rabbon,Hystrix等组件配合使用,他的核心是一系列的过滤器,通过这些过滤器来完成以下功能

Zuul有以下功能:

Demo

加入依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

application中增加配置

server.port=8777

# springcloud-consul配置
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500

# springcloud-gateway 配置
zuul.routes.fc.path=/server-client1/**
zuul.routes.fc.serviceId=server-client1

zuul.routes.fc.path=/server-client2/**
zuul.routes.fc.serviceId=server-client1

main函数中增加注解 @EnableZuulProxy

// 增加cosul的clinet和zuul的配置
@EnableDiscoveryClient
@EnableZuulProxy
public class FcGatewayStart {
    public static void main(String[] args) {
        SpringApplication.run(FcGatewayStart .class, args);
    }
}

效果
首先指定服务注册中心的地址为http://localhost:8500/server1/,服务的端口为8777,服务名为service-zuul;以/server-client1/ 开头的请求都转发给server-client1服务;以/server-client2/开头的请求都转发给server-client2服务,达到动态地将请求路由到不同的后端集群的功能

上一篇 下一篇

猜你喜欢

热点阅读