Spring Cloud微服务【Finchley.RELEASE版本】(八)zuul网关

Spring Cloud微服务【Finchley.RELEASE版本】(八)zuul网关

介绍

服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、均衡负载功能之外,它还具备了权限控制等功能。Spring Cloud Netflix中的Zuul就担任了这样的一个角色,为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。

实践

本篇延续此前的注册中心,消费端,服务提供端,我们用一个新的spring boot项目来实现zuul网关。

依赖引入

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>

启动类注解添加

@EnableZuulProxy
@SpringCloudApplication
public class EurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }
}

将zuul注册到注册中心

spring.application.name=api-gateway
server.port=2101
# 连接注册中心的服务地址
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/

测试

我们先依次启动注册中心,两个服务提供端和zuul,查看注册中心:
加上zuul网关(api-gate)一共有3个服务。
这里写图片描述
zuul不仅提供了负载均衡,还有权限控制路由等功能,高级的功能后续会讨论,现在我们访问具体的服务可以通过网关来实现:
比如要访问eureka-client的/clientTest服务,可以通过:
http://localhost:2101/eureka-client/clientTest
访问eureka-consumer-hystrix的/consumer服务,则是:
http://localhost:2101/eureka-consumer-hystrix/consumer

这里写图片描述
zuul网关成功生效!

猜你喜欢

转载自blog.csdn.net/qq_29534483/article/details/81390003