我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现;而服务间通过Ribbon或Feign实现服务的消费以及均衡负载。为了使得服务集群更为健壮,使用Hystrix的融断机制来避免在微服务架构中个别服务出现异常时引起的故障蔓延。

在该架构中,我们的服务集群包含:内部服务Service A和Service B,他们都会注册与订阅服务至Eureka Server,而Open Service是一个对外的服务,通过均衡负载公开至服务调用方。我们把焦点聚集在对外服务这块,直接暴露我们的服务地址,破坏了服务无状态特点。无法直接复用既有接口(对外需要权限控制,对内不需要权限控制,对于同一个接口就需要写两个一样接口 )。 而网关就解决了这一问题。

简介

1、Zuul包含了对请求的路由和过滤两个最主要的功能:
(1)其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。
(2)Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。

通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由,均衡负载,他还具备权限控制等功能。Spring Cloud Netflix中的Zuul就担任了这样一个角色,为微服务架构提供了前门保护的作用,同时将权限控制比较重的非业务逻辑内容迁移到服务器路由层面上。
注意:Zuul服务最终还是会注册Erueka

网关存在的意义就是将自己暴露给外部,对于微服务的调用都要通过网关进行访问。

加入zuul网关后的架构图

Zuul中默认就已经集成了Ribbon负载均衡和Hystix熔断机制。但是所有的超时策略都是走的默认值,比如熔断超时时间只有1S,很容易就触发了。因此建议我们手动进行配置:

hystrix:command:default:execution:isolation:thread:timeoutInMilliseconds: 2000 # 设置hystrix的超时时间为6000ms

参数配置

pom依赖

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

yml配置

server:port: 10010 #服务端口
spring:application:name: api-gateway #指定服务名
# 映射规则
zuul:routes:service-provider: # 这里是路由id,随意写path: /service-provider/** # 这里是映射路径url: http://127.0.0.1:8081 # 映射路径对应的实际url地址

服务启动配置

@SpringBootApplication
@EnableZuulProxy // 开启Zuul的网关功能
@EnableDiscoveryClient
public class ZuulDemoApplication {public static void main(String[] args) {SpringApplication.run(ZuulDemoApplication.class, args);}
}

图总结

【SpringCloud】zuul:网关相关推荐

  1. SpringCloud Zuul 网关

    目录 网关的概念 搭建zuul网关.实现路由转发 使用zuul过滤请求 使用zuul进行限流 网关的概念 API Gateway 网关,是介于客户端.服务器端之间的中间层,是系统对外的唯一入口,可以统 ...

  2. SpringCloud Zuul 网关搭建及配置

    目录 一.Zuul网关 二.Zuul服务的前期准备 2.1 注册中心EurekaServer的搭建 2.2 EurekaService的搭建 三.Zuul服务搭建 五.Zuul的访问 六.Zuul的更 ...

  3. springCloud Zuul网关

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

  4. springCloud Zuul 网关fallback

    后台服务停止,访问后台服务效果: 自定义Fallback类: @Component public class KingdeeFallBack implements FallbackProvider { ...

  5. SpringCloud 之 Zuul 网关搭建及配置

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:Anakki blog.csdn.net/qq_29 ...

  6. properties 配置回车_非常全面的讲解SpringCloud中Zuul网关原理及其配置,看它就够了!...

    本文同步Java知音社区,专注于Java 作者:kosamino http://www.cnblogs.com/jing99/p/11696192.html Zuul是spring cloud中的微服 ...

  7. 非常全面的讲解SpringCloud中Zuul网关原理及其配置,看它就够了!

    作者:kosamino www.cnblogs.com/jing99/p/11696192.html Zuul是spring cloud中的微服务网关.网关:是一个网络整体系统中的前置门户入口.请求首 ...

  8. properties 配置回车_非常全面的讲解SpringCloud中Zuul网关原理及其配置,看它就够了! - 风平浪静如码

    Zuul是spring cloud中的微服务网关.网关:是一个网络整体系统中的前置门户入口.请求首先通过网关,进行路径的路由,定位到具体的服务节点上. Zuul是一个微服务网关,首先是一个微服务.也是 ...

  9. 全面的讲解SpringCloud中Zuul网关原理及其配置,看它就够了

    Zuul是spring cloud中的微服务网关.网关:是一个网络整体系统中的前置门户入口.请求首先通过网关,进行路径的路由,定位到具体的服务节点上. Zuul是一个微服务网关,首先是一个微服务.也是 ...

  10. SpringCloud学习笔记(十四)Zuul网关

    专辑目录:SpringCloud学习日志 网关的概念: 我举个例子,我们到银行取钱,但是我们不能自己到金库里去拿钱,而是通过柜台服务员取钱.这时候柜台服务员就是网关,如果你没有存折和密码(相当于账号和 ...

最新文章

  1. Activity 数据传递给Fragment
  2. rdp连接工具_如何在Windows10中清除RDP连接历史记录?
  3. Windows server 2008 R2远程桌面3389端口号修改
  4. 内部收益率irr_介绍一个神器,内部收益率IRR
  5. PHP-Windows下搭建PHP-MSF环境【原创】
  6. 不懂 ZooKeeper?没关系,这一篇给你讲的明明白白
  7. 数据源管理 | 基于DataX组件,同步数据和源码分析
  8. mysql之TIMESTAMP(时间戳)用法详解
  9. Intel Haswell/Broadwell架构/微架构/流水线 (2)-流水线前端
  10. 为什么jvm要分为堆、方法区等?原理是什么?_「JVM」知识点详解一:JVM运行原理详解...
  11. 当SDN 遇到物联网
  12. mysql中sex数据类型_MySQL数据类型+简单操作
  13. jenkins构建android并发布到蒲公英平台
  14. Python3.7学习笔记30-垃圾回收机制
  15. DC/DC电源的延时计算
  16. 7月火影忍者服务器维护,7月12日停机更新公告
  17. 知道系统源码/知识问答系统源码/完整PC+手机端带功能强大后台管理系统
  18. UDS 14229 -1 刷写34,36,37服务,标准加Trace讲解,没理由搞不明白
  19. jpa findById 不需sql但是 dao integer接口是需要的
  20. 游戏开发中的人工智能(五):以势函数实现移动

热门文章

  1. python3 selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: None 错误处理
  2. php 数组 添加元素、删除元素
  3. GetLastError编号含义
  4. Android开发精要1--Android系统架构
  5. linux下字节对齐
  6. java操作xml文件--修改节点
  7. TCP/IP 协议简单分析
  8. c语言中有关指针的选择题,关于C语言指针的几道选择题能选几道就几道吧万分感谢1. 若已定义 爱问知识人...
  9. mysql 比较大小 慢_MYSQL慢查询优化方法及优化原则
  10. mysql 游标循环_mysql for循环遍历 游标用处