SpringCloud--Zuul简介及代码示例

Zuul官档地址:https://cloud.spring.io/spring-cloud-static/Greenwich.RELEASE/single/spring-cloud.html#_router_and_filter_zuul

 

路由(Routing)是微服务体系结构的一个组成部分。

例如,/可以映射到web应用程序,/api/users映射到用户服务,/api/shop映射到商店服务。

Zuul是Netflix基于jvm的路由器服务器端负载平衡器。(Ribbon是客户端负载均衡器)

 

Netflix使用Zuul做如下用途:

身份验证(Authentication)、Insight、压力测试(Authentication)、金丝雀测试(Canary Testing)、动态路由(Dynamic Routing)、服务迁移(Service Migration)、负载(Load Shedding)、安全(Security)、静态响应处理(Static Response handling)、流量管理(Active/Active traffic management)

 

配置属性zuul.max.host 连接已被两个新属性zuul.host所取代。

maxTotalConnections zuul.host 、maxPerRouteConnections,默认值分别为200和20

所有路由的默认Hystrix隔离模式(ExecutionIsolationStrategy)是SEMAPHORE(信号量)。

zuul.ribbonIsolationStrategy也可以更改为THREAD

Zuul starter不包含发现客户端(discovery client),因此,对于基于Service ID的路由,还需要在类路径中提供其中一个(Eureka是一种选择)。

 

Zuul所需依赖:

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

Zuul所需注解:

package com.itmuch.cloud;

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

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

Zuul所需配置:

spring:
  application:
    name: microservice-gateway-zuul
server:
  port: 8040
eureka:
  client:
    service-url:
      defaultZone: http://user:password123@localhost:8761/eureka
  instance:
    prefer-ip-address: true
zuul:
  ignoredServices: microservice-consumer-movie-ribbon-with-hystrix
  routes:
    microservice-provider-user: /user/**
    

例子,依次启动 1-注册中心Eureka服务,2-Zuul网关服务,3-服务提供者:user服务,4-服务消费者:movie服务

测试点:Zuul反向代理 user服务,

              Zuul反向代理movie服务

              Zuul只反向代理user服务

访问Eureka注册中心 http://localhost:8761/ 如下

 测试网关Zuul反向代理用户微服务,

访问 http://localhost:8040/user/simple/1即网关IP:网关PORT/反向代理的微服务ServiceID/接口路径),结果如下:

 成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值