admin 管理员组

文章数量: 1086019

I have deployed the spring boot application with 6 k8 pods for first time not faced any issue. but once redeployed it giving below error. 500 concurrent requests. out of those 23 requests failed.

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

on local i tried stress test with 500 sequential request but it have not failed.

added caching layer as well

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());
        }
    }

is there any problem with ClassLoadingStrategy ?

本文标签: javaCannot inject already loaded type classStack Overflow