SpringCloud笔记七:Zuul
什么是Zull
Zuul就是一个网关,实现的功能:代理、路由、过滤这三大功能
举个例子,一个大型商场,eureka是大型商场,服务是里面的商店,Zuul就是商场的保安。所以Zuul是需要注册进eureka的,没商场保安
为什么需要Zuul
这个你想想为什么商场需要保安就明白了....
下面是官方的回答,你看看就得了,没必要记
- 身份验证和安全性 - 确定每个资源的身份验证要求并拒绝不满足这些要求的请求。
- 洞察和监控 - 在边缘跟踪有意义的数据和统计数据,以便为我们提供准确的生产视图。
- 动态路由 - 根据需要动态地将请求路由到不同的后端群集。
- 压力测试 - 逐渐增加群集的流量以衡量性能。
- Load Shedding - 为每种类型的请求分配容量并删除超过限制的请求。
- 静态响应处理 - 直接在边缘构建一些响应,而不是将它们转发到内部集群
- 多区域弹性 - 跨AWS区域路由请求,以使我们的ELB使用多样化,并使我们的优势更接近我们的成员
新建Zuul项目
新建项目zuul-gateway-9527,给主方法加上@EnableZuulProxy注解
yml文件如下:
server:
port: 9527
spring:
application:
name: microservicecloud-zuul-gateway
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
instance:
instance-id: gateway-9527.com
prefer-ip-address: true
info:
app.name: atguigu-microcloud
company.name: www.atguigu.com
build.artifactId: $project.artifactId$
build.version: $project.version$
Maven的pom文件
<!-- 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>
<!-- actuator监控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
其实重要的是spring-cloud-starter-zuul这个
我们在hosts文件中添加一个Zuul的映射,模拟我们有服务器的样子
127.0.0.1 myzuul.com
这样我们就直接访问myzuul.com加端口号访问Zuul,假装我们有服务器的样子。
运行Zuul
启动eureka集群,启动一个provider服务,启动Zuul,浏览器输入
http://localhost:8001/dept/get/1,这当然是可以访问的。

现在浏览器输入Zuul的地址加服务名称加接口,这样我们就实现了通过Zuul进行访问服务,浏览器输入http://myzuul.com:9527/microservicecloud-dept/dept/get/1

可以看到,也是可以访问的。
Zuul的基本配置
上面我们运行了Zuul,通过Zuul访问服务成功,现在来配置一下Zuul,这个保安不能只站着,啥也不做吧,保安起码还得会巡逻,擒拿,疏散人群,突发应急等技能
忽略微服务的真实名称
在yml文件加如下内容
zuul:
# ignored-services: microservicecloud-dept
prefix: /Vae
ignored-services: "*"
routes:
mydept.serviceId: microservicecloud-dept
mydept.path: /mydept/**
这个是忽略微服务的真实名称,下面是忽略一个微服务
ignored-services: microservicecloud-dept
下面这个是忽略所有的微服务
ignored-services: "*"
这个是忽略真实名称后的替代名称
mydept.path: /mydept/**
其实,我不知道为什么要忽略真实的服务名,而使用一个替代名。
设置统一公共前缀
还是上面的,就是这个
prefix: /Vae
这个是为了方便的归类吧,这个时候在访问Zuul的时候,服务名前就要加上Vae了
总结
Zuul就是一个网关,保安,其实我们这学的只有忽略服务真实名称和设置统一前缀而已,Zuul的功能应该不仅于此。更多的用到再学吧。
防盗链接:本博客由蜀云泉发表
SpringCloud笔记七:Zuul的更多相关文章
- 《MFC游戏开发》笔记七 游戏特效的实现(一):背景滚动
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9344721 作者:七十一雾央 新浪微博:http:// ...
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- SpringCloud学习之zuul
一.为什么要有网关 我们先看一个图,如果按照consumer and server(最初的调用方式),如下所示 这样我们要面临如下问题: 1. 用户面临着一对N的问题既用户必须知道每个服务.随着服务的 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...
- Elasticsearch笔记七之setting,mapping,分片查询方式
Elasticsearch笔记七之setting,mapping,分片查询方式 setting 通过setting可以更改es配置可以用来修改副本数和分片数. 1:查看,通过curl或浏览器可以看到副 ...
- Typescript 学习笔记七:泛型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- python3.4学习笔记(七) 学习网站博客推荐
python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...
- Go语言学习笔记七: 函数
Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...
- springcloud 实战 网关zuul使用中遇到的相关问题
springcloud 实战 网关zuul使用中遇到的相关问题 1.网关zuul使用时,跨域问题在网关中配置pre过滤器: response.setHeader("Access-Contr ...
随机推荐
- 读书笔记之_Win10 与Jmeter5.1.1界面兼容:
读书笔记之win10 与jmeter5.1.1界面兼容: 调整前:
- vue build报copy-webpack-plugin] unable to locate异常的解决方法
ERROR in [copy-webpack-plugin] unable to locate 'J:\xxx\xxx\xxx\xxx\static' at 'J:\xxx\xxx\xxx\xxx\s ...
- MySQL Error Number 1005 Can’t create table(Errno:150)
mysql数据库1005错误解决方法 MySQL Error Number 1005 Can’t create table ‘.\mydb\#sql-328_45.frm’ (errno: 150) ...
- Python之爬虫的理解
# -*- coding: utf-8 -*- 中文用户一定先用这行来声明编码方式 爬虫: 爬虫是自动访问互联网,并且提取数据的程序 (从网络上获取非结构化的数据,ETL将这些数据转换为结构化数 ...
- Core官方DI解析(2)-ServiceProvider
ServiceProvider ServiceProvider是我们用来获取服务实例对象的类型,它也是一个特别简单的类型,因为这个类型本身并没有做什么,其实以一种代理模式,其核心功能全部都在IServ ...
- Java设置session超时(失效)的时间
在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session具体设置的方法有三种:1.在web容器中设置(以tomcat为例)在tom ...
- vmware workstation安装教程以及其中出现的错误解决方法
VMware Workstation 安装教程 1 下载好虚拟机,然后运行,点击下一步 2 选择我接受,下一步 3 选择安装的位置,可以自己选择,也可以默认不更改,这个无影响(图中I:\下面的VM ...
- git错集
2018年12月20日22:26:01 fatal:not a git repository ( or any of the parent directories ) : .git 这个错误出现在首次 ...
- CSS3 animation 与JQ animate()的区别
CSS3 与 JQ 根本区别 css3 animation与jQuery animate()区别在于实现机制不同 C3和JQ 完成动画的优缺点 1.css3中的过渡和animation动画都是基于cs ...
- [转帖]流程控制:for 循环
流程控制:for 循环 http://wiki.jikexueyuan.com/project/linux-command/chap34.html need more study need more ...