跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 问一个困扰了我两天的技术问题,微信小程序用户请求同一个接口 session 会阻塞
未分類
13 4 月 2021

问一个困扰了我两天的技术问题,微信小程序用户请求同一个接口 session 会阻塞

问一个困扰了我两天的技术问题,微信小程序用户请求同一个接口 session 会阻塞

資深大佬 : ReinerShir 6

场景如下: 小程序,有两个用户同时访问同一个接口会阻塞,第二个请求的人必须请等一个请求的人处理完毕才会响应第二个请求。

但如果我在 PC 上用两个不同的浏览器同时请求这个接口,是并行的,从结果上来看可能是 session 阻塞,即同一个会话同时只能处理一个请求。

技术框架是 spring boot,HTTPS,我知道 spring mvc 可以异步返回,但我不想这么做,因为我打印了这两个用户的 session id,发现他们是不一样的,所以不应该被别为同一个会话,按我的理解它应该是并行处理才对。

请教大佬给予解答!

大佬有話說 (9)

  • 資深大佬 : themostlazyman

    有表锁,或者分布锁吧。

  • 資深大佬 : iyaozhen

    这个要看你这个接口处理了什么?现在信息不好判断吧

  • 資深大佬 : xuanbg

    很简单,在接口内部第一行和返回前打印一下 start/end 日志,如果是 start,start,end,end,就是内部问题。start,end,start,end,这就是外部阻塞了。

  • 資深大佬 : shanghai1943

    可以先试试 3 老哥的做法看看。排查一下是在 controller 层外部排队还是在 controller 层内部排队,然后再看看对应的措施。

  • 資深大佬 : joesonw

    网关导致的?

  • 資深大佬 : gitdoit

    打日志啊,看看请求有没有同时到达。没有就是外部原因了

  • 主 資深大佬 : ReinerShir

    @shanghai1943
    @xuanbg
    @iyaozhen
    @gitdoit

    打了日志的,请求没有同时到达,而是等第一个请求结束后第二个请求的日志才打印

  • 主 資深大佬 : ReinerShir

    @gitdoit
    @xuanbg 关于外部原因,我也曾想过是不是微信浏览器的问题,但是找了一圈微信文档没发现有什么配置,有点束手无策了

  • 資深大佬 : shanghai1943

    那是不是客户端发出来的就是串行的了。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具