前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >洋洋洒洒688字带你彻底吃透Zuul的插件机制及定制化开发

洋洋洒洒688字带你彻底吃透Zuul的插件机制及定制化开发

作者头像
愿天堂没有BUG
发布2022-10-28 15:07:05
850
发布2022-10-28 15:07:05
举报
文章被收录于专栏:愿天堂没有BUG(公众号同名)

本文将给大家介绍的是Zuul的插件机制及定制化开发!

Zuul的插件机制及定制化开发

Zuul的另外一个重要机制就是Filter动态加载机制。Zuul支持的动态Filter由Groovy代码编写,动态管理Groovy的File目录变更并动态编译和加载。

● Filter类文件动态管理

Zuul通过FilterFileManager组件监控存放Filter文件的目录,定期扫描这些目录,如果发现有新Filter源码文件或者Filter源码文件有改动,则对文件进行编译和加载。FilterFileManager管理目录轮询的变化和新的Groovy过滤器。轮询间隔和目录在类的初始化中指定,并且轮询器将进行检查、更改和添加操作。下面的代码开启轮询线程。

startPoller开启轮询线程以定时调用manageFiles方法扫描目录,监听目录变化的startPoller方法在FilterFileManager初始化时调用一次下面的代码完成目录扫描及检测。

● Filter类文件动态编译

Zuul动态加载Filter文件,并通过编译器将文件编译成Class,目前Zuul通过定义DynamicCodeCompiler接口及Groovy编译的实现类GroovyCompiler 来 完 成 Groovy 编 写 的 Filter 的 动 态 编 译 。

DynamicCodeCompiler接口定义如下:

GroovyCompiler类型加载的源码如下:

● Java类型动态Zuul Filter加载

基于Zuul的字节码加载机制和File文件扫描与类文件动态加载机制,也支持基于Java语言的动态Zuul Filter加载(因为篇幅所限,代码部分省略)。

代码以图片形式展现出来,就是为了能够让大家手敲一遍,不要CV。

本文给大家讲解的内容是微服务网关:Zuul的插件机制及定制化开发

  1. 下篇文章给大家讲解的内容是微服务网关:Zuul的动态路由
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持!

本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 愿天堂没有BUG 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Zuul的插件机制及定制化开发
  • 本文给大家讲解的内容是微服务网关:Zuul的插件机制及定制化开发
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档