You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Spring Cloud的应用启动偶发ConcurrentModificationException如何修复

问题根因

该并发修改异常是spring-cloud-function-context 3.1.3版本的已知缺陷:SimpleFunctionRegistry类中存储函数注册信息的functionRegistrations是普通HashMap类型,未做并发安全控制。应用启动阶段一边注册Function Bean、一边收到请求遍历查找函数时,就会触发并发修改异常,导致请求失败、消息丢失。

修复方案

方案1:升级依赖版本(最推荐)

该缺陷已在后续补丁版本中修复,可直接将spring-cloud-starter-function-web的版本升级到3.1.7及以上的3.1.x维护版本,该版本和你当前使用的Spring Boot 2.5.4完全兼容,无需修改业务代码。新版本官方已将functionRegistrations替换为ConcurrentHashMap,从根源解决并发安全问题。

方案2:临时规避(无法升级版本时使用)

  • 延后流量接入时机:配置Spring Boot就绪检查,等所有Bean初始化完成、应用完全启动后再对外接入流量,比如K8s环境下配置readinessProbe校验/actuator/health接口返回UP之后再转发请求,避免启动阶段的并发读写冲突。
  • 配置函数预加载:在配置文件中添加如下配置,强制应用启动时就初始化所有Function Bean,避免运行时动态查找触发并发问题:
spring:
  cloud:
    function:
      eager: true

内容的提问来源于stack exchange,提问作者Mathias CARVILLE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:00:03