Spring Cloud Netflix 路由器和过滤器:Zuul

部分内容摘自 Spring Cloud 官方文档中文版

本文源码地址:

 

目录

Zuul 简介:

Zuul 基本使用:

Zuul 重定向

通过 Zuul 上传文件

Zuul 断路机制

@EnableZuulProxy 与 @EnableZuulServer

@EnableZuulServer 过滤器

@EnableZuulProxy 过滤器

自定义 Zuul 过滤


Zuul 简介:

路由是微服务体系结构的一部分,是 Netflix 的基于 JVM 的路由器和服务器端负载均衡器。

Zuul 默认结合 Ribbon 实现了负载均衡的功能。

 

Zuul 基本使用:

根据 服务发现:Eureka (一) 注册和运行 创建一个服务注册中心(eureka_server)和两个功能相同的 Eureka 客户端(eureka_client_1、eureka_client_2)

两个客户端的配置文件分别改为:

server.port=8762
 
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
 
spring.application.name=helloClient1
 
server.port=8763
 
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
 
spring.application.name=helloClient2

两个客户端的 spring.application.name 相同,代表提供了同一种服务,分配不同的端口模拟在不同服务器的场景

在两个客户端模块中分别创建一个相同的 HelloController

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Value("${server.port}")
    private String port;

    @RequestMapping(value = "/hello")
    public String hello(){
        return "my port is " + port;
    }

}

按照创建 Eureka 客户端的步骤创建一个新的 Module:zuulService

在 pom.xml 中加入以下依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>

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

编写 application.properties

zuul.routes.{}.path=    // 设置访问路径

zuul.routes.{}.service-id= (或 zuul.routes.{}.url=)    // 设置要路由到的服务

{} 中是该路由的名字


server.port=8766
spring.application.name=zuulService

eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

zuul.routes.client1.path=/client1/*
zuul.routes.client1.service-id=helloClient1

zuul.routes.client2.path=/client2/*
zuul.routes.client2.service-id=helloClient2

修改启动类,为其加入 @EnableZuulProxy、@EnableEurekaClient 注解

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@EnableZuulProxy
@E
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值