私は、Grails で広告キャンペーンを処理するためのバックエンドを作成したプロジェクトの最中にあり、広告サーバー部分を作成する最良の方法を見つけようとしています。つまり、実際の広告をエンド ユーザー (ブラウザ) に提供する部分です。
最近の 3 つのプロジェクトでは、Grails を使用してきました。Grails は、迅速な開発と、Spring と Hibernate による Java コミュニティからの優れたサポートにより、非常に気に入っています。ただし、Grails にはまだいくつかのパフォーマンスの問題があり、このタスクに Grails が正しい選択であるかどうかはわかりません。私は他の選択肢を検討してきましたが、どの方法に行くか決めることができません。サーバーは、毎秒数千のリクエストを処理できる必要があり、さらに堅牢である必要があります。DB 構造は次のとおりです (簡略化)。
Ad ==> site, position, percent of view (percent of time the ad is shown)
基本的に、広告サーバーは、特定のサイトと位置について DB から必要な行を取得し、表示する広告を選択する必要があります (パーセンテージに応じて)。
以下は、私が検討しているさまざまな選択肢です (すべて複数のインスタンスを持ち、ロード バランサーを使用する必要があります)。
- GrailsとRedisおよび MongoDBの併用- このトリオのパフォーマンスに関するレポートは見つかりませんでした。以前のプロジェクトで、Grails には多くのパフォーマンスの問題があることがわかりました。その多くはさまざまな方法で処理しましたが、Ad Server の場合はそうなるかどうかわかりません。
- Node.jsとキー値ストア - Node.js はおそらく非常に高速ですが、まだ安定していないため、この段階で実装するのは少し危険です。
- Ruby on Rails とキー バリュー ストア - Ruby on Rails の開発はまだ行っていませんが、Google で調べたところ、Ruby on Rails は Grails よりもはるかに優れたパフォーマンスを発揮します。
- キーと値のストアを備えたPHP - PHP プログラミングも行っていませんが、PHP を使用している大規模なサイトではパフォーマンスが優れているため、優れた代替手段と見なす必要があります。
提案や推奨事項は大歓迎です。