青柠开车Spring Cloud(五) —— spring cloud的窗口zuul(路由和过滤器)

Zuul微服务网关实战
本文介绍Zuul作为微服务网关的作用及其实现高可用的方法。Zuul可与Eureka、Ribbon、Hystrix等组件配合,提供身份认证、动态路由、压力测试等功能。通过Spring Cloud集成Zuul并将其加入Eureka服务注册中心,实现服务间的高效通信。

项目源码github地址

什么是zuul

zuul在之前我举得例子中,担任的是警察的角色。准确的说zuul可以是一个窗口,任何访问业务模块的请求都经过zuul进行转发。

官方定义:Zuul是Netflix开源的微服务网关,他可以和Eureka,Ribbon,Hystrix等组件配合使用。Zuul组件的核心是一系列的过滤器,这些过滤器可以完成以下功能:

  • 身份认证和安全: 识别每一个资源的验证要求,并拒绝那些不符的请求
  • 审查与监控:
  • 动态路由:动态将请求路由到不同后端集群
  • 压力测试:逐渐增加指向集群的流量,以了解性能
  • 负载分配:为每一种负载类型分配对应容量,并弃用超出限定值的请求
  • 静态响应处理:边缘位置进行响应,避免转发到内部集群
  • 多区域弹性:跨域AWS Region进行请求路由,旨在实现ELB(ElasticLoad Balancing)使用多样化

快速入门

spring-cloud创建spring-cloud-zuul模块项目,如下图:

zuul项目基本配置

  • pom.xml引入zuul的jar包

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
    </dependency>
</dependencies>
  • application.properties配置

server.port= 8561
# 服务名称
spring.application.name=gateway_zuul
# 访问路径
server.servlet.context-path=/zuul

# spring-web 项目的路由配置
zuul.routes.web.path=/**
zuul.routes.web.url=http://127.0.0.1:8661/
zuul.routes.web.sensitiveHeaders="*"
  • ZuulApplication.java中加入@EnableZuulProxy注解

/**
 * @author : R&M www.rmworking.com/blog
 *         2018/9/16 22:37
 *         spring-cloud
 *         org.qnloft.zuul
 */
@EnableZuulProxy
@SpringBootApplication
public class ZuulApplication {

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

现在尝试访问http://127.0.0.1/zuul/index,会出现HelloWorldController中返回的结果。

zuul加入eureka-server中,实现高可用

  • pon.xml中加入eureka-client的jar包

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  • application.properties中加入eureka-server的地址

eureka.client.serviceUrl.defaultZone= http://localhost:8761/eureka/
  • ZuulApplication.java中加入@EnableEurekaClient注解

转载于:https://www.cnblogs.com/qnloft/p/qing-ning-kai-cheSpring-Cloud-wu--spring-cloud-de-.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值