首页 > 其他分享 >Netflix之Zuul

Netflix之Zuul

时间:2023-10-07 14:36:21浏览次数:34  
标签:网关 Zuul 请求 Netflix provider zuul consumer ribbon

一、什么是Zuul

Zuul是Netflix开源的微服务网关,核心是一系列过滤器。这些过滤器可以完成以下功能。

  • 所有微服务的入口。进行分发。
  • 身份认证和安全。拦截不合法请求。
  • 监控。更加全面收集请求。
  • 动态路由。动态将请求分发到不同的后端集群。
  • 压力测试。可以逐渐增加对后端的流量,进行测试。
  • 负载均衡。也是用ribbon。
  • 限流。比如每秒只放行10000请求,第10001次就不让访问了
  • 服务熔断。所有拦截尽可能前置,熔断也算拦截的一种。

二、配置使用

1、依赖

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

2、需要配置介入Eureka服务器
3、启动类添加@EnableZuulProxy注解
4、负载均衡,默认是轮询

#consumer是服务ID
consumer:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

5、路由端点

# 调试的时候,看网关请求的地址,以及 映射是否正确。网关请求有误时,可以通过此处排查错误
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    routes:
      enabled: true
    health:
      show-details: always
      enabled: true

三、配置网关指定微服务的访问路径

1、通过服务名配置

# 虚拟虚拟主机名  这个consumer和provider是serviceid
zuul:
  routes:
    consumer: /con/**
    provider: /pvd/**

2、自定义地址映射

zuul:
  routes:
    consumer:
      path: /con/**
      url: http://www.baidu.com

3、自定义负载均衡

zuul:
  routes:
    consumer:
      path: /con/**
      service-id: consumer
    provider:
      path: /pvd/**
      service-id: provider
  prefix: /xin
consumer:
  ribbon:
    listOfServers: localhost:7905,localhost:7906
provider:
  ribbon:
    listOfServers: localhost:7903,localhost:7904
ribbon:
  eureka:
    enabled: false

4、其他配置

zuul:
  # 网关前缀
  prefix: /xin
  # 忽略那些微服务
  ignored-services=user-provider: consumer
  # 带上前缀请求
  strip-prefix: false

标签:网关,Zuul,请求,Netflix,provider,zuul,consumer,ribbon
From: https://www.cnblogs.com/xinay/p/17746163.html

相关文章

  • Netflix之Feign
    一、什么是FeignFeign是Netflix开发的一套声明式、模板话的http请求客户端,更便捷优雅的迪用API。会根据带有注解的函数信息构建网络请求模板,在请求发送之前,将函数的参数值设置到请求模板中。是一个http请求的轻量级框架,封装了http调用流程,面向接口编程,可以以接口注解的方式调用......
  • Netflix的eureka注册中心简单使用
    使用服务端<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>server:port:9000servlet:context-path:/eureka-servere......
  • 负载均衡 —— SpringCloud Netflix Ribbon
    Ribbon简介Ribbon是Netfix客户端的负载均衡器,可对HTTP和TCP客户端的行为进行控制。为Ribbon配置服务提供者地址后,Ribbon就可以基于某种负载均衡算法自动帮助服务消费者去请求。Ribbon默认提供了很多负载均衡算法,例如轮询、随机等,也可以为Ribbon实现自定义的负载均......
  • 注册中心 —— SpringCloud Netflix Eureka
    Eureka简介Eureka是一个基于REST的服务发现组件,SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务注册与发现,同时提供了负载均衡、故障转移等能力,目前Eureka2.0已经不再维护,故不推荐使用Eureka有两种角色组件:EurekaServer:服务注册中......
  • 【Archaius技术专题】「Netflix原生态」动态化配置服务之微服务配置组件变色龙
    推荐超值课程:点击获取前提介绍如果要设计开发一套微服务基础架构,参数化配置是一个非常重要的点,而Netflix也开源了一个叫变色龙Archaius的配置中心客户端,而且Archaius可以说是比其他客户端具备更多生产级特性,也更灵活。*在NetflixOSS微服务技术栈中,几乎所有的其它组件(例如Zuul......
  • spring cloud zuul实践
    一、描述SpringCloudZuul是基于Netflix开源的Zuul项目构建而成,它作为微服务架构中的网关服务,主要用于实现动态路由、负载均衡和请求过滤等功能。动态路由:Zuul根据预设的路由规则将进来的请求路由到相应的服务实例上。路由规则可以通过配置文件或代码进行定义,接收到请求后,Zu......
  • [问题记录] com.netflix.hystrix.exception.HystrixRuntimeException timed-out and n
    报错描述服务重启后第一次访问调用Feign接口会503,走熔断器的fallback打一次断点后再访问就没有问题,服务重启后第一次访问打断点也是503解决方案Hystrix缺省超时判断为1秒钟,由于网络问题,有些请求超过1秒钟之后才接收到增加响应时间即可hystrix:command:defau......
  • SpringCloud依赖问题:spring-cloud-starter-eureka-server 和 spring-cloud-starter-ne
    学习SpringCloud微服务时,很多资料上都写的是spring-cloud-starter-eureka-server,结果问题无法正常启动,这是因为与当前的SpringBoot版本不匹配。其实较新的版本应该使用spring-cloud-starter-netflix-eureka-server依赖。PS:SpringCloud的版本不兼容好坑。......
  • Netflix如何通过重构视频Gatekeeper提升内容运营效率?
    Gatekeeper是Netflix的视频内容评估管理平台,可以展示视频剧集的metadata,如合同信息、字幕、标题、内容分级等。但此前,运营人员无法通过Gatekeeper实时更新剧集信息,本文将介绍新的gatekeeper架构,以及因此获得的收益。 文/ DrewKoszewnik译/Johnhttps://medium.com/netflix-t......
  • Spring Cloud Netflix Eureka学习
    SpringCloudNetflixEureka传统的服务治理通讯协议XML-RPC->XML方法描述、方法参数->WSDL(WebServices定义语言)WebServices->SOAP(HTTP、SMTP)->文本协议(头部分、体部分)REST->通常是JSON/XML(Schema:类型、结构)->文本协议(HTTPHeader、Body)W3CSchema:xsd:string原......