HTTP를 통해 입력 스트림을 전달해야한다는 요구 사항이 있습니다. 나는 파일 커넥터를 노새로 사용하고 입력 스트림을 HTTP 커넥터에 전달합니다. 파일 크기는 250MB에서 10GB에 이르는 거대한 크기가 될 것입니다. 내가 700 메가 바이트 파일과 노력하고있어 HTTP 커넥터가 메모리가 부족합니다. 나는 커넥터가 모든 것을 메모리에로드하고 있다고 생각합니다. 왜 그것을 스트림으로 전달하지 않는 것입니까? 이 작업을 수행하는 가장 좋은 방법은 무엇인지 알려주십시오.HTTP 커넥터를 사용하여 HTTP를 통해 HTTP를 통한 입력 스트림 전달
답변
저는 성능에 영향을 미치지 않고 설계하는 것이 Architect Level의 결정이라고 생각합니다. 거대한 파일 전송이 될 경우 GB 수준에서 File to File Transfer 프로토콜을 선호합니다. 귀하의 경우 이미 FTP에서 파일을 읽고 처리하고 다시 FTP 또는 AmazonS3 또는 SFTP에 업로드하십시오. 업로드 할 때 파일을 압축하고 있는지 확인하십시오.
1. HTTP 호출 용 Java 구성 요소를 사용하여 사용자 정의 코드를 작성하고 Multipart 업로드 개념을 사용하십시오. (또는) 2. 파일을 분할하고 HTTP 커넥터 Mule의 부품을 밀어 넣습니다. (슈퍼 빠른) 뮬에서 (나)
3.Use 배치 구성 요소 - 보통 배치 다음은 분할 및 부품 (사용 일괄 처리 크기 (편리한)에 의해 HTTP 부분에 밀어 수하는 초 만에 엄청난 양의 데이터를 처리합니다.
1 옵션을 선택하기 전에를 참조하십시오 배치 구성 요소로보십시오. https://docs.mulesoft.com/mule-user-guide/v/3.6/batch-processing을 그것은 you.Batch 특별히 큰 페이로드를 처리 할 수 있도록 설계되어 도움이 될 것입니다 참고 :. 당신이 한 가지 또는 분할에 모든 밀어 갈 필요가 있는지 확인
합니다.데이터를 보내려는 장소에 SFTP 서버가 없습니다. HTTP 커넥터가 메모리에로드되고 있기 때문에 파일을 분할하여 http를 통해 전송하면 결국 메모리 문제가 발생합니다. –
config xml을 공유하십시오 파일 커넥터에서 스트리밍을 사용하도록 설정했는지 확인하십시오 사용하도록 설정하지 않으면 전체 파일 콘텐츠가 VMWare에로드됩니다. VM이 VM을 죽입니다.
건배!
StackOverflow에 오신 것을 환영합니다. 이 사이트에서 가장 효과적으로 질문하는 방법을 배우려면 http://stackoverflow.com/help/how-to-ask를 검토하십시오. 귀하의 질문에는 코드가 포함되어 있지 않으며 특정 답변을 허용하기에 충분한 정보를 제공하지 않습니다. 더 많은 문맥을 제공하십시오. – TW80000
희망 사항을 올바르게 이해합니다. – star