关于Zuul的经验分享和扩展思路.pdf

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于Zuul的经验分享和扩展思路.pdf

关于Zuul的经验分享和扩展思路 翟永超(程序猿DD) Spring Cloud Netflix Zuul Netflix Zuul Zuul简介 对接Website时的问题 过滤器的统一异常处理 自定义错误格式 域名路由与contextPath 对接Website时的问题 •  会话保持问题 •  原因:头信息中的Cookie和Authorization信息没有被正确传递 •  设置sensitiveHeaders属性 •  全局设置: •  zuul.sensitive-headers= •  指定路由设置: •  zuul.routes.<routeName>.sensitive-headers= •  zuul.routes.<routeName>.custom-sensitive-headers=true •  相关过滤器:flix.zuul.filters.pre.PreDecorationFilter 对接Website时的问题——重定向问题 •  重定向问题 •  原因:头信息中的host没有被正确处理 •  Brixton版本:需扩展Filter来支持 •  Camden版本:设置属性zuul.add-host-header: true •  相关过滤器:flix.zuul.filters.pre.PreDecorationFilter 过滤器的统一异常处理 •  为什么要扩展统一异常处理? •  当自定义过滤器中抛出异常,客户端没有任何错误信息 ! •  为什么没有返回错误信息呢? 过滤器的统一异常处理 •  异常信息是如何返回? •  SendErrorFilter •  异常信息的格式与传递? •  error.status_code:错误编码 •  error.exception:Exception异常对象 •  error.message :错误信息 过滤器的统一异常处理 •  解决方法一: •  严格的try-catch处理 •  在异常中按异常传递规则来组织请求上下文 过滤器的统一异常处理 •  解决方法二: •  由于任何阶段的异常都会被error阶段的过滤器处理,所以我们可以通过它来统一处理异常信息 过滤器的统一异常处理 •  新的问题 ! •  post类型的过滤器抛出异常时,任何没有返回错误信息 ! 过滤器的统一异常处理 •  原因: •  pre、route阶段的error处理之后都继续被post过 滤器处理,SendErrorFilter可以将组织好的错误 信息进行输出,但是post阶段的异常被error过 滤器处理后,就不会再被post过滤器处理 过滤器的统一异常处理 •  进一步优化 •  增加error过滤器对错误信息的返回 •  通过继承SendErrorFilter来复用输出逻辑 •  新的问题 ! •  如何判断是来自post过滤器的异常呢? 过滤器的统一异常处理 •  扩展FilterProcessor •  当过滤器执行发生异常时,在请求上下文中传递出错的过滤器,让Error过滤器可以获取到出现异常的过滤器。 自定义错误格式 •  方法一:重写post阶段的过滤器,返回不同的内容(不推荐) •  方法二:扩展DefaultErrorAttributes的实现(/error端点) 域名路由与ContextPath支持 •  推进Zuul时的困难 •  前提:小范围试错,灰度上线,兼容上面这个各种花样的路由规则 •  困难:各种各样

文档评论(0)

cai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档