V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sharkv
V2EX  ›  Java

springboot 项目如何缓解全局拦截器的负担

  •  
  •   sharkv · 2019-02-18 11:07:41 +08:00 · 3343 次点击
    这是一个创建于 2129 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前在做的一个项目中每一个请求都需要事先经过全局拦截器的处理。可是请求数量上来后我担心全局拦截器承受不住,问问各位仁兄有什么建议
    12 条回复    2019-02-19 10:10:58 +08:00
    xuwenping
        1
    xuwenping  
       2019-02-18 11:14:38 +08:00 via Android
    使用 zuul 部署一个网关?或者尽量减少全局拦截器拦截次数,比如只拦截系统使用的 URL?
    egfegdfr
        2
    egfegdfr  
       2019-02-18 11:18:18 +08:00
    如果拦截器里面的业务逻辑不复杂,应该是没什么问题的
    jun1st
        3
    jun1st  
       2019-02-18 11:18:51 +08:00
    不用担心,没什么问题
    lhx2008
        4
    lhx2008  
       2019-02-18 11:20:24 +08:00
    不读写 mysql 问题不大,如果读写了要做优化。不放心可以压测看看有没问题。
    abcbuzhiming
        5
    abcbuzhiming  
       2019-02-18 11:21:34 +08:00   ❤️ 1
    你的拦截器里有复杂逻辑吗?计算时间很长?如果不是,不存在什么负担不了,首先 spring 项目的对象都是单例,无状态,说白了,每次请求进入拦截器都是进入独立的内存拷贝空间,所以不存在负载不了
    Cbdy
        6
    Cbdy  
       2019-02-18 11:45:28 +08:00 via Android   ❤️ 1
    “我担心全局拦截器承受不住”
    J 过度工程就是这么来的,毛主席说了,没有调查就没有发言权,建议先去测试一下,看看你的担心是不是杞人忧天
    q397064399
        7
    q397064399  
       2019-02-18 14:09:53 +08:00   ❤️ 1
    一般不建议全局拦截,有需要拦截的地方 自己 AOP 做一套 然后在需要拦截的地方加注解,这样一来可以减轻人的思维负担,排查各类问题也比较方便,特别是 Java 这种 本来一个简单的方法 调用栈就成千上百个方法 本身就很难受了。
    sharkv
        8
    sharkv  
    OP
       2019-02-18 19:29:21 +08:00
    @egfegdfr 就是起一个转发的作用。因为每个请求都是虚拟请求(不存在该路径的 api),所以需要截取请求路径然后转发到指定的 api 处理。这样的话全局拦截负担感觉就太重了。
    sharkv
        9
    sharkv  
    OP
       2019-02-18 19:30:53 +08:00
    @xuwenping 那我去看看,还没用过。
    sharkv
        10
    sharkv  
    OP
       2019-02-18 19:32:40 +08:00
    @Cbdy 我是觉得搞开发的问题想多一点是有好处的,解决方案很多都是平时一点点积累的,车到山前不一定有路。
    sharkv
        11
    sharkv  
    OP
       2019-02-18 19:33:33 +08:00
    @lhx2008 不用读写 mysql 哈
    buliugu
        12
    buliugu  
       2019-02-19 10:10:58 +08:00
    没 io 操作问题不大
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5772 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:49 · PVG 09:49 · LAX 17:49 · JFK 20:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.