質問

最近、「データのロード」を使用してデータベースに行を詰め込むようにコードの一部をリファクタリングしました。これはうまく機能します。ただし、レコードごとに 2 つのファイルを s3 にアップロードする必要があります。これにより、得ていた素晴らしい速度アップグレードが完全に台無しになります。 。これまでは 1 秒あたり 600 以上のドキュメントを処理できましたが、s3 のせいで、現在は 1/秒で少しずつ処理されています。

これに対する回避策は何ですか?API を見ると、ほとんどが RESTful であることがわかります。そのため、何をすればよいかわかりません。おそらく、これをすべてデータベースに貼り付けるべきかもしれません。テキスト ファイルは通常 1.5k を超えません。(そこに詰め込むもう 1 つのファイルは、テキストの XML 表現です)

これらのファイルは頻繁に使用されるため、Web サーバーへの HTTP リクエストで既にキャッシュしています。

ところで:現在の実装では Java を使用しています。スレッドはまだ試していませんが、それはオプションかもしれません

おすすめは?

役に立ちましたか?

解決

[putObjects][1] の関数 ジェットS3t 複数のファイルを一度にアップロードします。

あるいは、バックグラウンド スレッドを使用してキューから S3 にアップロードし、データベースにデータをロードするコードからファイルをキューに追加することもできます。

[1]: http://jets3t.s3.amazonaws.com/api/org/jets3t/service/multithread/S3ServiceMulti.html#putObjects(org.jets3t.service.model.S3Bucket, 、org.jets3t.service.model.S3Object[])

他のヒント

私はただの PHP のでディレクトリ全体をアップロードするにはすてきな解決策を見つけます:

$client->uploadDirectory(
  SOURCE_FOLDER,
  YOUR_BUCKET_NAME,
  DESTINATION,
  array(
    'concurrency' => 5,
    'debug'          => TRUE,
    'force'            => FALSE,
    'params'        => array(
      'ServerSideEncryption' => 'AES256',
    ),
  )
);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top