2016-08-18 13 views
0

HTTP経由で入力ストリームを渡す必要があります。私は、ファイルコネクタを使用してmuleを読み込み、入力ストリームをHTTPコネクタに渡しています。ファイルサイズは250mbから10gbまでの巨大なものになるでしょう。私は700 mbのファイルで試していて、HTTPコネクタにはメモリ不足があります。私は、コネクタがすべてをメモリにロードしていると思います。なぜそれがストリームとして渡されないのですか?これを行う最善の方法は何かを教えてください。HTTPコネクタを使用してHTTP経由でHTTP経由で入力ストリームを渡す

+0

ようこそStackOverflow。このサイトで最も効果的に質問する方法については、http://stackoverflow.com/help/how-to-askをご覧ください。あなたの質問にはコードは含まれておらず、特定の回答を許可するのに十分な情報を提供していません。より多くの文脈を提供してください。 – TW80000

+0

私はあなたの質問を正しく理解しています。 – star

答えて

0

パフォーマンスに影響を与えずに設計することはArchitectレベルの決定以上のものだと思います。それが巨大なファイル転送になる場合、GBレベルではFile to File Transferプロトコルを優先します。 あなたの場合、すでにFTPからファイルを読み込んで処理し、再びFTPまたはAmazonS3またはSFTPにアップロードしています。アップロード時にファイルを圧縮していることを確認してください。

1. HTTP呼び出し用のJavaコンポーネントを使用してカスタムコードを書き、Multipartのアップロードコンセプトを使用します。 (または) 2.ファイルを分割し、HTTPコネクタMuleでパートを押します。 (または)

3.バッチコンポーネントをMule(超高速)で使用する - 通常、バッチ処理で大量のデータが1秒で処理されます。ここで分割してHTTP部分にプッシュできます(バッチサイズ(便利)を使用します)。

第一オプションを選択する前に、コンポーネントを参照してくださいバッチで試してみてください。https://docs.mulesoft.com/mule-user-guide/v/3.6/batch-processingは、それがyou.Batchは、特別に大きなペイロードを処理するように設計されて役立ちます注意:あなたが一度または分割し、Goですべてをプッシュする必要があることを確認してください

+0

データを送信したい場所にSFTPサーバーがありません。ファイルを分割してHTTP経由で送信すると、HTTPコネクタがメモリにロードされているため、最終的にはメモリの問題が発生します –

0

ファイルコネクタでストリーミングを有効にしていることを確認してください 有効になっていないと、ファイルコンテンツ全体があなたのVMにロードされますチャットVMを殺す

乾杯!

関連する問題