Camel을 사용하여 텍스트 파일 세트에 여러 문자열 (100,000)을 씁니다.Apache Camel 파일 출력 구성 요소 성능 저하 - Java
from("seda:fileOutputMatchedMsgClose?concurrentConsumers=44")
.to("file:MATCHED_CLOSE?fileExist=Append")
.end();
그래서 기본적으로 무슨 일이 일어나고 있는지 내가 더 상류로 처리 객체에서 이러한 문자열을 만드는 프로듀서 콩을 가지고 있습니다 :
아래 코드는 내 낙타 경로를 보여줍니다. 제작자 bean의 sendbody 및 header 메소드의 일부로 헤더의 파일 이름을 설정합니다. 그래서 22 개의 파일이 작성되고 있습니다 (모두 MATCHED_CLOSE 폴더에 있음). 이 22 개의 파일에 대한 메시지는 모두 하나의 SEDA 엔드 포인트로 전송됩니다 (fileOutputMatchedMsgClose).
문제는 응용 프로그램이 초당 440 개의 문자열을이 SEDA 엔드 포인트로 전송한다는 것입니다. 그리고 JConsole에서 fileOutputMatchedMsgClose의 대기열 크기를 살펴보면 메모리 사용량과 함께 계속 증가하고 있습니다. 그래서 약간의 병목이 여기에 있습니다.
누구나 더 나은 성능을 얻는 방법에 대한 권장 사항이 있습니까? 440 줄 각각의 파일에 쓰는 것은 280Cars 정도이며,별로 크지는 않습니다. 그래서 내가 궁금한 점은 Camel에서 파일 구성 요소의 성능을 높이기 위해 할 수있는 최적화가 있는지 (아마도 각 파일마다 여러 경로를 만들거나 (통증이 될 수 있음)) 아니면 내가 직접 파일 IO 빈을 작성해야하는지 이?
건배!