• 丁志勇
    2018-11-20
    2点,第1点问题,Springcloud支持动态Filter加载机制,您的ppt中硕大的几个字《去掉了动态过滤器加载》带有很明显的误导,这也不能是放弃Springcloud zuul的理由,如果您指的是Springcloud不自带filter管理工具,那么就有第2点问题,这个原版zuul所带的动态filter管理工具,在我看来也不具备生产级应用,太过于简陋,必须做定制化开发,那么都需要自己扩展filter管理平台,如果选择原生zuul,既需要实现filter管理平台,又放弃了Spring的友好集成,这个是否是得不偿失?另外原生zuul的发布方式只能依赖外部web容器,而无法做到像springboot那样的内建web容器使用main函数启动,各种不方便?在如此情况之下,您建议使用原生zuul的理由似乎不够充分?

    作者回复: 视频ppt中观点只是我个人基于实战经验之后的建议,仅供参考,你作为架构师需要根据企业实际上下文自己独立思考和选型。spring cloud zuul虽封装得对开发较友好,但有点过度封装,很多学员反应比较绕,出问题不容易定位和深入源码,这些是封装的成本。建议在较大流量生产上使用的话,还是需要深入zuul/ribbon/hystrix源码,根据企业实际情况作定制,这点我认为原生zuul的代码相对简单更容易切入。当然spring cloud的产品一直在迭代完善中,相信后面会越做越好。anyway,感兴谢你提出来的问题,架构师需要这种批判性思考态度!

    
     2
  • 码农Kevin亮
    2019-12-11
    请教老师,我用zuul来路由网页资源时,网页被重定向了而不是反向代理,这个要怎么设置呢?
    还是说静态资源不应该放在网关内呢?

    作者回复: zuul主要用做针对API的网关,Web应用或者静态页面,建议放在nginx这类反向代理之后,nginx处理静态页面性能会更好。

    当然zuul和nginx没有本质区别,都是反向代理,zuul也可以反向代理Web应用或者静态资源,zuul其实也不关心请求/响应是xml/json还是html页面。具体配置你可以看Spring Cloud Zuul的官方文档即可,如果有问题,可以简单debug一下,看看是不是有filter截获了请求做了重定向,zuul的代码不复杂。

    
    
  • 恰饭哒
    2019-07-24
    波波老师您好,我遇到一个zuul网关配置重试不其作用的问题,用了hystrix熔断配置参数如下:
    zuul.routes.xxxxxx.retryable=true
    spring.cloud.loadbalancer.retry.enabled=true
    .xxxxxx..ribbon.ConnectTimeout=2000
    xxxxxx.ribbon.ReadTimeout=4000
    xxxxxx.ribbon.MaxTotalHttpConnections=4000
    xxxxxx.ribbon.MaxConnectionsPerHost=800
    xxxxxx.ribbon.MaxAutoRetries=1
    xxxxxx.ribbon.MaxAutoRetriesNextServer=2
    xxxxxx.ribbon.OkToRetryOnAllOperations=true
    hystrix.command.xxxxxx.circuitBreaker.enabled=true
    hystrix.command.xxxxxx.circuitBreaker.requestVolumeThreshold=30
    hystrix.command.xxxxxx.circuitBreaker.sleepWindowInMilliseconds=5000
    hystrix.command.xxxxxx.execution.isolation.strategy=THREAD
    hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000
    hystrix.command.xxxxxx.execution.isolation.semaphore.maxConcurrentRequests=1000
    hystrix.command.xxxxxx.fallback.isolation.semaphore.maxConcurrentRequests=3000
    用的是okhttp
    展开

    作者回复: https://stackoverflow.com/questions/48584013/ribbon-retry-properties-not-respected

    你试试这个帖子里头讲的设置一个全局ribbon retry是否管用:
    ribbon:
      OkToRetryOnAllOperations: false

     2
    
  • 要文有文要武有武
    2018-12-18
    讲到很到位,辛苦老师!!!

    作者回复: 谢支持🌹

    
    
  • 幻想
    2018-10-21
    杨老师,我从网络上了解到,使用spring cloud 继承的zuul,如果filter使用groovy写,也是一样正常动态发布和加载的哦。

    作者回复: spring cloud可能也能实现动态filter加载,但需扩展对接定制的filter存储,拉取等管理机制,这些netflix原生zuul已有支持。建议大规模流量网端考虑netflix原生zuul,动态filter机制更灵活,中小规模流量网端用spring cloud zuul也ok,静态filter也有利,调试更友好。

    
    
  • 袄家堡
    2018-10-16
    项目中用了sping cloud zull,之前是只会用,不知道什么时候用,为什么要这么写,但听了前边的原生zull,大概明白了里边的东西,可能是自己技术有限,听起来还是有些吃力,希望老师在后期能讲接的通俗点,谢谢

    作者回复: 嗯,原生zuul代码不复杂,本质就是个servlet,建议拉下代码研读下,会更有收获。

    
    
  • 天天平安
    2018-09-11
    讲一个这样的例子,真的没有意义?还架构师来学?这样的架构师你们公司要吗?

    作者回复: 你的想法很多,可以加我微信(bulldog2015)交流,我有一个极客时间群,大家可以一起讨论学习成长。这个样例是让大家上手spring cloud zuul的,理解它和原生zuul的主要差别,毕竟现在很多公司直接用spring cloud zuul的,并不是说会用spring cloud zuul就是架构师了。如果有架构师来我这里面试,我会让他解释原生zuul架构和内核原理,也会问原生zuul和spring cloud zuu的差别,以及他的实战经验。

    
    
我们在线,来聊聊吧