Java EE
gnaiqil1
这个作者很懒,什么都没留下…
展开
-
一次线上死循环的排查过程
场景 A写了一个服务,给B调用 A的这个服务针对一个key,在一次调用完成之前不能调用第二次,如果连续调用,第二次不会执行业务,而是直接返回系统繁忙,使用ConcurrentHashMap + Atomic的cas控制。(不要吐槽我们小公司小用户量暂时没有使用水平扩展的分布式服务哦,这里就考虑了单机线程安全) // {key -> 是否正在运算} Map<Long, AtomicBoolean> map = new ConcurrentHashMap<>(); pub原创 2020-06-06 15:28:57 · 405 阅读 · 0 评论 -
Spring Security中使用HttpServletResponse::sendError产生的一次非预期返回
前言 本文主要记录公司使用spring security时在认证失败阶段给客户端返回失败时的一次非预期返回。 所以下面会提到Spring Security在认证过程中的一些名称,如AuthenticationFilter,AuthenticationManager,AuthenticationProvider等,分别用来过滤请求,执行认证过程,提供具体认证方式。 spring security使用一个filter链完成对请求的认证(authentication)和授权(authorization)过程,详细原创 2020-05-30 11:02:01 · 2592 阅读 · 0 评论