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

Spring Boot应用K8s重部署后并发请求触发“Cannot inject already loaded type”报错排查求助

Spring Boot应用K8s重部署后并发请求触发“Cannot inject already loaded type”报错排查求助

大家好,我碰到了一个棘手的问题,想请各位帮忙分析下:

第一次把Spring Boot应用部署到K8s集群(6个Pod)时完全正常,但重部署之后,当发起500个并发请求时,有23个请求失败了,报错信息如下:

Generic event exception: Error creating event class: Cannot inject already loaded type: class com.kafka.events.DynamicSampleEvent

我在本地做过压力测试,500个顺序请求完全没有失败的情况,而且已经给动态生成的事件类加了缓存层,代码如下:

eventClassCache = new LinkedHashMap<>(100, 0.75f, true) {
            protected boolean removeEldestEntry(Map.Entry<String, Class<? extends KafkaPublishEvent<Object>>> eldest) {
                return size() > 100;
            }
        };

生成事件类的核心代码是这样的:

private Class<? extends KafkaPublishEvent<Object>> generateEventClass(String eventType) {
        String sanitizedEventType = eventType.replaceAll("[^a-zA-Z0-9_.]", "");
        try (DynamicType.Unloaded<KafkaPublishEvent> unloadedType = new ByteBuddy()
                .subclass(KafkaPublishEvent.class)
                .name("com.kafka.events.Dynamic" + sanitizedEventType + "Event")
                .make()) {
            return (Class<? extends KafkaPublishEvent<Object>>) unloadedType
                    .load(getClass().getClassLoader(), ClassLoadingStrategy.Default.INJECTION)
                    .getLoaded();
        } catch (Exception e) {
            throw new EventGenerationException(ERR_0033, "Error creating event class: " + e.getMessage());
        }
    }

我现在怀疑是不是ClassLoadingStrategy的问题?有没有大佬能帮我找找原因?

备注:内容来源于stack exchange,提问作者ShubhamK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 20:13:05