Spring Cloud之—— Zuul(网关)

简介

路由是微服务架构的组成部分。 例如,/可以映射到您的Web应用程序,/ api/users映射到用户服务,/api/shop映射到商店服务。 Zuul是Netflix基于JVM的路由器和服务器端负载均衡器。

Netflix使用Zuul进行以下操作:

  • 认证
  • 洞察
  • 压力测试
  • 金丝雀测试
  • 动态路由
  • 服务迁移
  • 负载脱落
  • 安全
  • 静态响应处理
  • 主动/主动流量管理

Zuul的规则引擎允许任何JVM语言编写规则和过滤器,内置支持Java和Groovy。

配置属性zuul.max.host.connections已被两个新属性zuul.host.maxTotalConnections和zuul.host.maxPerRouteConnections取代,它们分别默认为200和20。

所有路由的默认Hystrix隔离模式(ExecutionIsolationStrategy)是SEMAPHORE。 如果首选此隔离模式,则可以将zuul.ribbonIsolationStrategy更改为THREAD。

在这里插入图片描述
Zuul 是通过Eureka 调用的组件并做为EurekaClient 端一起使用,所以提前启动Eureka 服务,请看上一篇博客

构建项目

  • 跟我们之前构建项目一样, 使用idea 工具直接创建一个新的SpringBoot 项目,在选择依赖的界面勾选Cloud Discovert -> Zuul 依赖,创建完成后的pom.xml 配置文件内容如下:
		<!--Zuul做为Eureka组件的Client端,必须依赖Eureka-client-->
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
        
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

  • 在主启动类上添加Zuul 的注解@EnableZuulProxy ,如下所示:
@EnableZuulProxy
public class ZuulApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication.class, args);
    }

}
  • 因为Zuul 是一个网关,它和nginx 一样只负责转发请求,所以我们得启动需要转发到客户端并注册进Eureka 的服务,这里我默认启动一个服务(服务的ApplicationNameHelloZuul),访问地址为:localhost:8080/hello ,访问结果(页面显示):hello world!

在这里插入图片描述

  • application.properties配置文件内容
server.port=8081
# zuul标识你服务的名字,这里是自己定义,一般方便和规范来讲还是跟自己服务的名字一样
# /hello/** 需要拦截8081所有以hello开头的请求
zuul.routes.zuul.path=/zuul/**
# zuul标识你服务的名字,这里是自己定义,一般方便和规范来讲还是跟自己服务的名字一样
# HelloZuul是转发服务的ApplicationName
zuul.routes.zuul.service-id=HelloZuul

运行测试

浏览器访问地址为:localhost:8081/zuul/hello 会转发到localhost:8080/hello相当于访问localhost:8080/hello

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值