Zuul:API  GATEWAY (服务网关):

http://blog.daocloud.io/microservices-2/

一个客户端不同的功能请求不同的微服务,那么客户端要知道所有微服务的ip和端口,如果有的微服务不是rest协议是用的别的协议,有时候有可能几个微服务要合并,上面都是问题。

所以前面要加一个服务网关,客户端只需要知道网关的ip和端口就可以了,网关知道后面微服务的ip和端口,缺点是要考虑网关的高可用。

Ribbon是客户端的负载均衡器,Zuul是服务端的负载均衡器。

使用http://192.168.88.1:7901/simple/1直接访问user微服务(7901是user的微服务地址),

http://192.168.88.1:8040/microservice-provider-user/simple/1(8040是zuul的端口,microservice-provider-user是user微服务的application:name)。通过zuul就可以访问user服务了。

给user微服务指定别名。默认代理所有注册到eureka上的微服务。

一个工程只有src和pom文件,加入.project文件然后更新工程就会出现.classpath文件和其他的文件就可以跑起来了。

经过zuul的请求都会通过hysitrcs包裹,所以zuul会有断路器功能。zuul还使用了ribbon做负载均衡。

Zuul过滤器:

Zuul有4中过滤器,PRE,ROUTING,POST,ERROR。Pre先执行然后routing,然后post然后error.

pre是zuul请求别的微服务之前,routing是请求过程中的,post是请求到微服务之后可以添加一些header,error是抛异常了。

也可以自定义过滤器。

周立springclud : http://www.itmuch.com/advertisment/my-spring-book/

package com.itmuch.cloud;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;@SpringBootApplication
@EnableZuulProxy     //使用这一个注解就可以注册到eureka,
public class ZuulApplication {public static void main(String[] args) {SpringApplication.run(ZuulApplication.class, args);}
}

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:routes:abc:                            # abc随意,只要唯一就可以path: /user-path/**               # 使用user-path访问user微服务serviceId: microservice-provider-user        # 注册到eureka的服务的application名字# http://localhost:8040/routes : 查看zuul代理的微服务
# {"/user-path/**":"microservice-provider-user","/microservice-provider-user/**":"microservice-provider-user"}
# 就可以使用zuul来代理user微服务:http://localhost:8040/microservice-provider-user/simple/1
# zuul的请求都用hystrix包裹:http://localhost:8040/hystrix.stream

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:prefix: /simplestrip-prefix: false
logging:level:com.netflix: debug

spring:application:name: microservice-gateway-zuul
server:port: 8040
eureka: #注册到eureka server上面去client:service-url:defaultZone: http://user:password123@localhost:8761/eureka
  instance:prefer-ip-address: true#prefer-ip-address: false # localhost:microservice-gateway-zuul:8040#经过zuul的请求都会通过hysitrcs包裹,配置hysitrcs的超时时间
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000#zuul还使用了ribbon做负载均衡,要设备ribbon的超时时间
ribbon:ConnectTimeout: 3000ReadTimeout: 60000

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:prefix: /api   # http://192.168.88.1:8040/api/microservice-provider-user/simple/1 前缀加服务的名称strip-prefix: true   # 为false就不能通过加前缀/api来访问了,
logging:level:com.netflix: DEBUG

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:routes:abc:path: /user-url/**url: http://192.168.85.1:7900/

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:routes:abc:  #只针对abc路由path: /user-url/**service-id: microservice-provider-user
ribbon:eureka:enabled: false
# http://192.168.88.1:8040/microservice-provider-user/simple/1 会从7901和7902这2个节点来请求
microservice-provider-user:     # 这边是ribbon要请求的微服务的serviceId,7901和7902是2个user微服务,ribbon:listOfServers: http://localhost:7901,http://localhost:7902

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  #不想反向代理microservice-consumer-movie-ribbon-with-hystrix微服务routes:microservice-provider-user: /user/**  #user微服务的别名# 现在http://192.168.88.1:8040/user/simple/1访问user微服务,原来http://192.168.88.1:8040/microservice-provider-user/simple/1#默认zuul会反向代理所有注册到eureka的微服务

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.itmuch.cloud</groupId><artifactId>microservice-spring-cloud</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>microservice-gateway-zuul</artifactId><packaging>jar</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- 依赖,还要加eureka client的依赖 --><dependencies><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></dependencies></project>

springcloud13---zuul相关推荐

  1. 【微服务架构】SpringCloud之路由网关(zuul)

    什么是zuul zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架.Zu ...

  2. zuul两大作用_SpringCloud微服务(05):Zuul组件,实现路由网关控制

    一.Zuul组件简介 1.基础概念 Zuul 网关主要提供动态路由,监控,弹性,安全管控等功能.在分布式的微服务系统中,系统被拆为了多个微服务模块,通过zuul网关对用户的请求进行路由,转发到具体的后 ...

  3. spring cloud微服务治理eureka、hystrix、zuul代码例子

    spring cloud微服务中台服务代码例子,包括eureka.hystrix.zuul https://github.com/birdstudiocn/spring-cloud-sample/tr ...

  4. zuul 启动 threw exception_SpringCloud-Zuul-网关路由过滤器

    标注: SpringBoot版本:<version>2.1.11.RELEASE</version> SpringCloud版本:<spring-cloud.versio ...

  5. java 类隔离_微服务架构中zuul的两种隔离机制实验

    ZuulException REJECTED_SEMAPHORE_EXECUTION 是一个最近在性能测试中经常遇到的异常.查询资料发现是因为zuul默认每个路由直接用信号量做隔离,并且默认值是100 ...

  6. Spring Cloud入门教程 - Zuul实现API网关和请求过滤

    简介 Zuul是Spring Cloud提供的api网关和过滤组件,它提供如下功能: 认证 过滤 压力测试 Canary测试 动态路由 服务迁移 负载均衡 安全 静态请求处理 动态流量管理 在本教程中 ...

  7. Spring Cloud(七)服务网关 Zuul Filter 使用

    上一篇文章中,讲了Zuul 转发,动态路由,负载均衡,等等一些Zuul 的特性,这个一篇文章,讲Zuul Filter 使用,关于网关的作用,这里就不再次赘述了,重点是zuul的Filter ,我们可 ...

  8. Spring Cloud(六)服务网关 zuul 快速入门

    服务网关是微服务架构中一个不可或缺的部分.通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由.均衡负载功能之外,它还具备了权限控制等功能.Spring Cloud Netflix中 ...

  9. springCloud Zuul网关

    1.springboot 仅2.0.x 支持,在此选择 2.0.7 2.新建Module eureka-zuul-client 3.导入依赖 <?xml version="1.0&qu ...

  10. SpringCloud的服务网关zuul

    演示如何使用api网关屏蔽各服务来源 一.概念和定义 1.zuul最终还是使用Ribbon的,顺便测试一下Hystrix断路保护 2.zuul也是一个EurekaClient,访问服务注册中心,获取元 ...

最新文章

  1. 头条小视频和西瓜视频signature签名算法
  2. Java的死锁的例子
  3. tensorflow 实现逻辑回归——原以为TensorFlow不擅长做线性回归或者逻辑回归,原来是这么简单哇!...
  4. 跑深度学习在Linux服务器上常用操作(ssh, screen, tensorboard, jupyter-notebook)
  5. libjpeg在windows下的编译
  6. JavaScript设计模式: 接口模仿
  7. plc ge c语言编程,GE PLC编程软件快速入门手册.pdf
  8. 深度装机大师一键重装_电脑店U盘重装系统教程
  9. USB加密狗复制USBTrace数据截取工具分享
  10. 科技论文之Introduction部分写作
  11. 英特尔超级计算机显卡,美国公布首台百亿亿次超级计算机!用上Intel Xe独立显卡...
  12. 浅析企业应收账款保理融资
  13. app中跳转到手机浏览器,部分手机白屏解决(Vue)
  14. win10合并硬盘合区(win10怎样合并硬盘的两个分区)
  15. 古琴【A1】基本指法
  16. 注入winlogon
  17. HEVC区域划分Slice Tile CTU CU PU TU
  18. BZOJ 1124 [POI2008]枪战Maf 贪心+乱搞
  19. 新手入门刷题(专题三)暴力枚举
  20. python写自动化测试脚本常见报错_Appium自动化测试

热门文章

  1. 数据存储之SharedPreferences
  2. 兰州大学计算机考研专硕学费,2018年兰州大学在职硕士研究生学费标准
  3. 学习笔记Kafka(三)—— Kafka安装配置(2)—— Kafka单代理及常用操作
  4. hive相对于oracle的优点,【Hive】Hive面试题
  5. was连接oracle rac集群,Oracle集群(RAC)及 jdbc 联接双机数据库
  6. pcm 采样率转换_44.1KHz够用吗?我们是否需要更高的采样率?
  7. 哨兵机器人钢力士_哨兵胳膊都被卸了?巴西厂X战警钢力士正式公布
  8. sublime c 语言 编译环境搭建,详解sublime搭建C/C++编译环境
  9. swing查询输入框无值时出现null异常_如何优雅处理代码中 Null 值引起的 Bug?告别 Null 恐惧症!...
  10. vue中 .sync 修饰符 个人理解