2016-05-09 22 views
-1

バルク更新と作成を行っているときに私のappilicationに問題があります。JavaでバルクREST APIを設計する

私は1000個のフィールドが含まれており、一度に10000更新と非常に巨大な残りのペイロードを持っています。リクエストデータを送信した後、jdbcプロシージャを使用してdbに保存されます。

ここで私たちは性能問題に直面しています。

私はこのもパフォーマンスの問題をreslveするバルクAPIを設計する必要があります。

私は彼らのimplementionについて明確でない販売力とTelerik.Butによって、既存のバルクAPIを検索。

私が一括更新のためのJavaで私自身のバルクのREST APIを設計し、のを作成するにはどうすればよいです。

どのデザインパターンを考慮する必要がありますか?

身体が私に答えることができれば、私にとっては役に立ちます。

ありがとうございます。

答えて

1

RESTでよく使われる用語は "コレクションリソース"です。

請求書を保存するシステムを考えてみましょう。 ID 123を持つ単一の請求書を使用して行われることになるコレクションに新しい請求書を追加するURL

/resources/123 

を持っている可能性がありながら、彼らのために収集リソースはURL

/resources 

を持つことができ

POST /resources 
Content-Type: application/json 

{ 
    "customer": "CUS-123", 
    "amount": 1.43, 
    "paided": false 
} 

サーバーはそれを格納し、IDを割り当てます。一つのリクエストで複数の請求書を保存するために

、それは配列を投稿する理にかなって:

POST /invoices 
Content-Type: application/json 

[ 
    { 
    "customer": "CUS-123", 
    "amount": 1.43, 
    "paided": false 
    }, 
    { 
    "customer": "CUS-456", 
    "amount": 42.23, 
    "paided": true 
    }  
] 

それは今ストアに複数の請求書が存在することを認識するために、サーバーのresponsibiltityでしょう。そのようなAPIの

+0

答えがありがとう、私は、例えば:一度に1000レコード(一括更新)のために更新するソリューションが必要です。私は私がパフォーマンスをも考慮に入れることができるAPIを設計する必要があります。 –

0

一つの例は、ElasticSearch一括更新サポートです: https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html

あなたはそこにいくつかのインスピレーションを取ることができます。

+0

ありがとう、私はそれを参照してください –

+0

私はしようとしたが、モデルや設計や実装を正確に理解していない。私はJavaでアプリケーションを適用することができます –

+0

彼らは内部的にHTTP APIを呼び出すJavaクライアントを持っているので、Java APIを持っています。 –

関連する問題