springcloud 入门 7 (zuul路由网关)
Zuul简介:
Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务。zuul默认和Ribbon结合实现了负载均衡的功能。
zuul有以下功能:
- Authentication
- Insights
- Stress Testing
- Canary Testing
- Dynamic Routing
- Service Migration
- Load Shedding
- Security
- Static Response handling
- Active/Active traffic management
Zuul搭建:
第一步:引入相应的pom
第二步:在启动类上启动zuul
第三步:配置文件配置,向注册中心注册。自身做一个客户端。
第四步:启动测试: 六个服务以此启动,最好先启动服务端,再启动其他客户端
zuul过滤:
zuul主要是路由和过滤,上面已经介绍路由,下面介绍过滤。在过滤中类似servlet的过滤器,拦截器。在修改的时候可以做一些二次开发:
package com.huhy.springcloud.filter; import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.exception.ZuulException;
import org.springframework.stereotype.Component; /**
* @author : huhy on 2018/9/4.
* @Project_name:springcloud_self
* @LOCAL:com.huhy.springcloud.filter
* @description:{todo}
*/
@Component
public class MyFilter extends ZuulFilter {
/**
* @author huhy
* @ClassName:MyFilter
* @date 2018/9/4 13:58
* @Description: 返回一个字符串代表过滤器的类型
*/
@Override
public String filterType() {
/**
* pre: 路由之前
* routing:路由之时
* post: 路由之后
* error: 发送错误调用
* */
System.out.println("filterType--------------");
return "pre";
}
/**
* @author huhy
* @ClassName:MyFilter
* @date 2018/9/4 13:59
* @Description: 过滤顺序
*/
@Override
public int filterOrder() {
System.out.println("filterOrder--------------");
return ;
}
/**
* @author huhy
* @ClassName:MyFilter
* @date 2018/9/4 13:59
* @Description: 这里可以写逻辑判断,是否要过滤,本文true,永远过滤。
*/
@Override
public boolean shouldFilter() {
System.out.println("shouldFilter--------------");
return true;
}
/**
* @author huhy
* @ClassName:MyFilter
* @date 2018/9/4 13:59
* @Description:过滤器的具体逻辑。可用很复杂,包括查sql,nosql去判断该请求到底有没有权限访问。
*/
@Override
public Object run() throws ZuulException {
System.out.println("run--------------");
return "run";
}
}
注意:
1>feign 和 ribbon也是负载,那么和zuul有啥侧重点呢?
ribbon的负载在于相同服务之间的负载,zuul多用于在多个服务之间传递请求。 zuul 多以集群的形式存在。
2> zuul在springcloud充当的角色(借用网上一张图)
springcloud 入门 7 (zuul路由网关)的更多相关文章
- SpringCloud 进阶之Zuul(路由网关)
1. Zuul(路由网关) Zuul 包含了对请求的路由和过滤两个最主要的功能; 路由功能:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础; 过滤功能:负责对请求的处理过程进行干 ...
- SpringCloud的入门学习之概念理解、Zuul路由网关
1.Zuul路由网关是什么? 答:Zuul包含了对请求的路由和过滤两个最主要的功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进 ...
- SpringCloud学习系列之六 ----- 路由网关Zuul基础使用教程
前言 在上篇中介绍了SpringCloud Config的完美使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由网关 ...
- SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理
前言 在上篇中介绍了SpringCloud Zuul路由网关的基本使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由 ...
- SpringCloud学习笔记(八):Zuul路由网关
概述 是什么? Zuul包含了对请求的路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请 ...
- SpringCloud与微服务Ⅸ --- Zuul路由网关
一.Zool是什么 Zuul包含了对请求路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现 ...
- springCloud之路API路由网关Zuul
1.简介 简单的理解就是,相当于在所有服务的调用前加了一层防火墙, 主要就是对外提供服务接口的时候,起到了请求的路由和过滤作用,也因此能够隐藏内部服务的接口细节,提高系统的安全性: 官方文档:http ...
- 【七】zuul路由网关
一.zuul是什么?zuul 包含以下两个最主要的功能:1.路由功能: 负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础.2.过滤器功能: 则负责对请求的处理过程进行干预,是实现请 ...
- spring cloud 2.x版本 Zuul路由网关教程
前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...
- zuul路由网关集成ssl,实现http到https的转变
1 前言 最近几天刚开始接触微信小程序的开发,才接触到了https的概念(微信小程序中的请求必须为https请求,不然请求无法成功).https算是对http的安全封装,在http的基础上加了ssl证 ...
随机推荐
- Rolling Hash about the Rsync
今天看文献看到一个有趣的算法—Rolling Hash,这个算法可以更新在不同的machine上的两个“similar”的文件,也叫做rsync algorithm,rsync顾名思义:remote ...
- centos7使用lldb调试netcore应用转储dump文件
centos7下安装lldb,dotnet netcore 进程生成转储文件,并使用lldb进行分析 随着netcore应用在linux上部署的应用越来越多,碰到cpu 100%,内存暴涨的情况也一直 ...
- Hadoop2源码分析-YARN 的服务库和事件库
1.概述 在<Hadoop2源码分析-YARN RPC 示例介绍>一文当中,给大家介绍了YARN 的 RPC 机制,以及相关代码的演示,今天我们继续去学习 YARN 的服务库和事件库,分享 ...
- SQL 必知必会·笔记<4>使用通配符过滤数据
LIKE操作符 通配符(wildcard): 用来匹配值的一部分的特殊字符. 百分号(%)通配符 最常使用的通配符是百分号(%).在搜索串中,%表示任何字符出现任意次数: SELECT prod_id ...
- 修复Nginx 502错误:upstream sent too big header while reading response header from upstream
原文出处:https://www.cnblogs.com/jpfss/p/10237463.html 便于以后参考我复制了过来! cookies的值超出了范围我是说 看看了一下日志 错误502 ups ...
- synchronized锁住的是代码还是对象
不同的对象 public class Sync { public synchronized void test() { System.out.println("test start" ...
- 【awesome-dotnet-core-learning】(2)-Sprache.Calc-表达式计算器
[awesome-dotnet-core-learning](2)-Sprache.Calc-表达式计算器 示例代码托管在GITHUB上, 欢迎STAR! 严格来说, Sprache.Calc只是上一 ...
- libtorch初体验
环境 Ubuntu -18.04.1, opencv3.4.0 , python 3.6, cmake 3.5.0, pytorch 1.0. pytorch官网下载对应版本:https://py ...
- 【学习笔记】深入理解HTTP协议
参考:关于HTTP协议,一篇就够了,感谢作者认真细致的总结,本文在理解的基础上修改了内容,加深印象的同时也希望对大家有所帮助 HTTP是什么? HTTP协议是Hyper Text Transfer P ...
- .14-浅析webpack源码之Watchpack模块
解决掉了最头疼的DirectoryWatcher内部实现,这一节可以结束NodeWatchFileSystem模块. 关于watch的应用场景,仔细思考了下,这不就是热重载的核心嘛. 首先是监视文件, ...