请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于Sentinel CommonFilter的问题(吐槽)

之前想问这个问题后来忘记了想起来再说下!我的sentinel版本是1.7.0的

大目老师我看了另外一个兄弟的问题然后看了您提的issue,就是**关于sentinel里面CommonFilter导致簇点链路显示不正常以及流控链路模式不生效的问题,**阿里官方的兄弟是不是有点不太得劲哈,后来看到有位阿帕奇的大佬将Commonfilter的代码修改了,读取一个名为WEB_CONTEXT_UNIFY的参数来判断是使用sentinel_web_servlet_context作为contextName或者是request中的url

图片描述

图片描述

并且这段代码在1.7.0版本已经发布了,我开心的以为可以直接在配置文件上配置这个属性的,然后去翻了一下源码看一下,结果!

看到实在com.alibaba.cloud.sentinel.SentinelWebAutoConfiguration这个配置类里面添加的这个过滤器。然后就发现
图片描述

添加过滤器的时候并没有通过读取配置文件传入这个参数,也就是说不能配置!oh no!

结果就需要自己动手把这个CommonFilter添加上去,而且最好把上边那个配置类抄一遍,并且禁用官方的这个代码,也就是把spring.cloud.sentinel.enabled设置为false,这样做之后确实能达到目标效果了!但是,对于有梦想的人来说是不是会很难受!

假如在com.alibaba.cloud.sentinel.SentinelProperties.Filter里面加个配置属性然后在上边代码读取并将其作为初始化参数传入难道它不香吗?有点吐槽的意思,但是还是想听听大目老师您的看法,官方它是草率怪还是有什么高级考虑!

正在回答

1回答

很赞的问题,我都有和你惺惺相惜的感觉了!!哈哈!!因为我也有和你类似的吐槽……

吐槽的issue我一时间找不到了。不过找几个其他的给Sentinel的建(吐)议(槽)给您看看吧(我给官方吐槽过好几个,而且大部分issue也都直接私聊联系官方人员吼过,哈哈哈):

  1.  https://github.com/alibaba/Sentinel/issues/913

  2. https://github.com/alibaba/spring-cloud-alibaba/issues/842

  3. https://github.com/alibaba/Sentinel/issues/1024

  4. https://github.com/alibaba/Sentinel/issues/999

  5. https://github.com/alibaba/spring-cloud-alibaba/issues/771

  6. https://github.com/alibaba/spring-cloud-alibaba/issues/762

-----

回到您的问题:

官方它是草率怪还是有什么高级考虑!

我个人理解,都不是。官方既不草率,也不高级……

我个人分析是这样的:

阿里总体来说,是不用Spring MVC的(其实你看下Sentinel Dashboard那个拙劣的Spring MVC代码,也能有所感受了…连个参数校验都是手写的,没有用Bean Validation…),主要都是使用HSF或者Dubbo。这导致很多设计都是从HSF/Dubbo的角度去考虑的,没有从Spring MVC的角度去考虑。

于是导致Spring MVC玩家觉得Sentinel用得不那么的爽,甚至觉得官方设计显得很没有脑袋…比如,注解、过滤器的功能体验还不一致…

不过这个现状正在被改进,比如Sentinel 1.7.1,新增了一个Spring MVC专属的适配层( https://github.com/alibaba/Sentinel/releases  )。

我只能告诉你,未来会更好…现状嘛…可能还不是那么的完美。

1 回复 有任何疑惑可以回复我~
  • 提问者 Doctor_Blind #1
    感谢老师
    回复 有任何疑惑可以回复我~ 2020-01-11 16:12:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信