0

SpringでWebサービスを作りたかった。簡単でちょっとしたことで、より複雑になります。現在、私は Symphony2 と Mongodb で同じロジックを持っています。アイデアは、1 つの Web サービスを介して 1 秒あたり多くのリクエストを処理することです。

ポイントは実際のphpのコードをJavaに移行することで、Springでやりたいと思っています。インストールできるRESTサービスを理解するまで:

  • ジャージー
  • スプリングMVCを直接使用
  • ジャクソン

どれが最高で、より現実的で、速く、簡単です.... ? 他のサイトでは、実際の DB (Mongo) を Hibernate で使用しようとしていましたが、いくつかの問題が発生しました。では、ここでの私の質問は、他の DB を選択する必要があるかどうかです。休止状態を削除する必要がありますか? 休止状態がレイテンシーにどのようにペナルティを課すかということは、休止状態を使用するかどうかにかかわらず、どれだけの時間が失われるかを意味します。たとえば、Doctrine を使用するかどうか (PHP では hibernate=Doctrine "more or less") の場合、Web サービスにリクエストを送信してから応答を得るまでの時間に違いがあります。

最後に、休止状態のデータベースを使用します。

  • MySql
  • PostgreSQL
  • オラクル

アイデアは、株式市場に関連するプロジェクトを作成することです。そのため、通貨と新しい挿入に関する多くの変更、データベースの更新と選択が同時に行われます。「リアルタイム」に近いほど良い。

ご協力いただきありがとうございます!私はJavaに変更しようとしているPHPの少年です:)

4

1 に答える 1

1

本当の質問ではありませんが、それが私であり、Spring が設定された要件である場合:

まず、 Spring BootまたはSpring Rooを介して Spring アプリケーションをセットアップし、 Jackson JSON プロセッサを介して JSON を送受信するいくつかのコントローラーを追加し(これは Spring とうまく統合されます)、Spring Dataを使用してデータをRedisにプッシュします。メモリ ストレージ ( Spring Data Redis )。永続性に注意する必要がありますが、時々非同期で実行できる場合があります (例: Spring Data MongoDBを使用)。これらのコントローラー マッピングがユース ケースに十分ではなく、本当に REST に移行したい場合は、Spring Data RESTもあります。サブプロジェクトを使用してデータを「RESTful エンドポイント」として公開します。これは、ストレージ/永続レイヤーとうまく統合されるはずです (私自身はこれを使用したことはありません)。

休止状態のペナルティについてはよくわかりません。これは自分で測定する必要があると思います。ただし、セットアップをできるだけシンプルに保つことは常に良い考えであるため、Hibernate なしで開始してみてください。もちろん、ORM を使用する/使用する必要がある/使用する必要がある場合は、データに大きく依存します。シンプルと言えば、単純なことではありません。すでに多くのライブラリと依存関係が搭載されています。最近はすべてのSpringプロジェクトがあるようですが、Spring Dataプロジェクトの成熟度については何も知りません。

一般的に (そして理論的には): 適切な抽象化を使用すると、測定されたパフォーマンスのボトルネックのために必要に応じて、後で別の永続化プロバイダーに移行できるはずです。

于 2013-10-01T14:37:57.673 に答える