Zuul 简介
Zuul 是 Netflix 公司开发的一个开源 APIGateway,其本质上是一个 WebServlet 应用。Zuul 的核
心是一系列的 Filter。

为什么要使用 Zuul
微服务架构是各应用单独成为一个服务,每个服务之间通过 Api 进行通信。如果 web 端直接
通过应用自身 Url 直接访问每个应用,每次服务请求地址不同,访问多个应用很复杂。
例如:一个电商平台中,访问 user 应用(应用地址 xxxx:8000)名称为 user 的 Api,请求 Url 为
http://xxxx:8000/user,访问 bill 应用(应用地址 xxxx:8001)名称为 bill 的 Api,请求 Url 则为
http://xxxx:8001/bill。
如果应用成百上千,则意味着有成百上千个不同的端口,每个端口代表一个应用,通过不同
端口来访问应用很困难。
下图是不使用 Zuul 的访问模式:

服务网关 Zuul
我们可以通过服务网关来解决上述问题,服务网关是微服务应用中不可或缺的一部分。
Zuul 提供了反向代理功能。将 Zuul 注册到服务中心 Eureka 中,我们仅需访
问微服务网管 Zuul 的地址,后面接上其他服务的注册名称和接口名称即可解决上述问题。
如:Zuul 应用服务的访问地址 xxxx,端口是 8002,Zuul,user,bill 三个应用均注册到 Eureka
中,访问 bill 应用名称为 bill 的 Api 的请求方式为:http://xxxx:8002/bill/bill;同理,访问 user
应用,名称为 user 的 Api 的请求方式为:http://xxxx:8002/user/user。
使用了 Zuul 之后,用户只需要访问网关 Zuul,Zuul 会通过 Eureka 中的服务名跳转到其他服
务,简化服务访问方式,如下图:

微服务之路由网关—zuul的更多相关文章

  1. 基于spring-cloud的微服务(4)API网关zuul

    API网关是微服务架构中的很重要的一个部分,内部有多个不同的服务提供给外部来使用,API网关可以对外做统一的入口,也可以在网关上做协议转换,权限控制和请求统计和限流等其他的工作 spring-clou ...

  2. 微服务之路由网关—Nginx

    Nginx 简介Nginx 是一款自由的.开源的.高性能的 HTTP 服务器和反向代理服务器,它具有有很多非常优越的特性: • 作为 Web 服务器:  相比 Apache , Nginx 使用更少的 ...

  3. 白话SpringCloud | 第十一章:路由网关(Zuul):利用swagger2聚合API文档

    前言 通过之前的两篇文章,可以简单的搭建一个路由网关了.而我们知道,现在都奉行前后端分离开发,前后端开发的沟通成本就增加了,所以一般上我们都是通过swagger进行api文档生成的.现在由于使用了统一 ...

  4. 玩转SpringCloud(F版本) 四.路由网关(zuul)

    本篇文章基于: 01)玩转SpringCloud 一.服务的注册与发现(Eureka) 02) 玩转SpringCloud 二.服务消费者(1)ribbon+restTemplate 03) 玩转Sp ...

  5. Zuul超时问题,微服务响应超时,zuul进行熔断

    天碰到了微服务响应超时问题,而且超时时间特别短,2秒就超时,zuul就走熔断了. 我采用zuul作为网关,根据不同的访问路径进行微服务的路由,譬如有个服务是user,我访问user服务的某个接口时,该 ...

  6. 白话SpringCloud | 第十章:路由网关(Zuul)进阶:过滤器、异常处理

    前言 简单介绍了关于Zuul的一些简单使用以及一些路由规则的简单说明.而对于一个统一网关而言,需要处理各种各类的请求,对不同的url进行拦截,或者对调用服务的异常进行二次处理等等.今天,我们就来了解下 ...

  7. 白话SpringCloud | 第九章:路由网关(Zuul)的使用

    前言 介绍完分布式配置中心,结合前面的文章.我们已经有了一个微服务的框架了,可以对外提供api接口服务了.但现在试想一下,在微服务框架中,每个对外服务都是独立部署的,对外的api或者服务地址都不是不尽 ...

  8. 路由网关zuul(七)

    一.定义 Zuul包含了请求的路由和过滤的2个主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求处理过程进行干预,是实现请求校验,服 ...

  9. SpringCloud全家桶学习之路由网关----Zuul(六)

    一.Zuul概述 (1)Zuul是什么? Zuul包含了对请求的路由和过滤的两个最主要的功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础:而过滤功能则负责对请求的 ...

随机推荐

  1. centos7网络配置方法

    方法一:nmtui    这个是字符界面的图形化网络配置工具 方法二:nmcli 命令行配置 方法三:直接vim /etc/sysconfig/network-scripts/ens----  编辑 ...

  2. 网络编程 单纯UDP通信

    网络编程 单纯UDP通信 1,UDP发送端 2,UDP接收端 UDP发送端: #include <stdio.h> #include <unistd.h> #include & ...

  3. python 3.7 配置mysql数据库

    一. mysql驱动安装 1.mysqlclient(推荐使用)    2.pymysql 二.django操作数据库     1.django配置连接数据库         settings.py ...

  4. 1.1 NCE21 Daniel Mendoza

    1.text translation Two hundred years ago, boxing matches were very popular in England. At that time/ ...

  5. JavaScript面向对象—基本数据类型和引用数据类型的区别和变量及作用域(函数和变量)

    基本类型和引用类型的值 ECMAScript 变量可能包含两种不同的数据类型的值:基本类型值和引用类型值. 基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置. 而引用 ...

  6. 正则表达式regex(golang版)

    代码: //File: main.go package main import ( "fmt" "regexp" ) func main() { r := re ...

  7. MJT's Blog

    This is MJT's blog. Here is a mirror web of his blog.

  8. 《通过C#学Proto.Actor模型》之Behaviors

    Behaviors就是Actor接收到消息后可以改变处理的方法,相同的Actor,每次调用,转到不同的Actor内方法执行,非常适合按流程进行的场景.Behaviors就通过在Actor内部实例化一个 ...

  9. 将arguments转换成数组的方法

    将函数里的arguments,转换成一个真正的数组的方法,arguments是个类数组,除了有实参所组成的类似数组以外,还有自己的属性,如callee,arguments.callee就是当前正在执行 ...

  10. typeScript面对对象篇一

    面向对象是typescript的核心部分,这里先介绍下面向对象的七大原则: 单一原则:一个类子负责一个职责. 里氏替换原则:子类可以在任何地方替换它的父类. 依赖倒置原则:代码要依赖于抽象的类,而不要 ...