Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

複数サーバ間での同期制御?

始めまして。主にTomcat6.0ベースのWebアプリを開発しております。

複数のWebサーバで不可分散するシステムを構築する際に、memcachedやJCSなどの共有メモリの仕組みを利用したいと思っておりますが、複数サーバ間でメモリアクセスに対する同期制御(複数サーバ間でsynchronized出来るような仕組み)って無いでしょうか。

DBサーバを利用するのは一つの手なのですが、パフォーマンスを重視されるシステムで、メモリ上でやる必要があります。
なお、これまではサーバ間でメモリのコピー処理などを行ってきましたが、よりシンプルな作りが出来ないかと模索中です。

よろしくお願いします。

7

回答

84751

閲覧

7件の回答

評価

0

ネットワークを利用しなきゃいけない時点で「?」だけど。
本当にあるメモリをサーバ間で共有して、さらに同期しないといけないシステムなのか…。
ユーザー個々であれば、SESSIONIDを用いて常に単一のアプリサーバにひもづけることができるはずだけど。

評価

0

対戦型のゲームサーバなので、どうしてもメモリの共有が必要なんよね。ユーザ毎であればTomcatのクラスタリングが有効なのは確認できてるんだけど。

実際これまでは $ さんの言うように、対戦ごとに特定のサーバに紐付け(リダイレクト)する方法取ってたんだけど、もろもろの事情で作りが複雑になったもので。もっとシンプルな作りに出来ないかと思って。。(^^;

自作するしかないかなぁ。

評価

0

そっちはあまり知らないから、大したことは言えないなあ…。
どうしてもどこかで、泥臭いことするしかないと思う。

NASは、キャッシュを考えると厳密に同期が取れないときがあるし。
DBに関しては、JDBCが重過ぎるのでJNIでCから処理すればけっこう軽くなる…けど。

昔同期させるのにMQというやつを使ったことがあるけど、あれはリアルタイムではないし、AIXだけだったと思うし、高いし。

現状の構成でパフォーマンスの問題が出ているならともかく、そうでないなら割り切るしかないのでは…。

でも、そもそもネットゲームの通信でなぜにhttp?とも。

評価

0

うーん。やっぱり単純な方法は無いかなぁ。下手に同期処理入れるよりは、従来通りコピーとリダイレクトした方がまだ楽そう。

iアプリとかは今のところまだHTTPしか通せないので。。。TCP/IPで直接繋げたいのは山々なんだけどね(^^;

アドバイスどもでしたー。

評価

0

iアプリ…。

あのー、何万人の参加者を想定してるんでしょうか。
いずれにしても、Tomcatの負荷よりFOMAの回線のパンクのほうが先ですよ。
あんまり考えても仕方ないと思われ。

評価

0

うーん・・・実業務に関わることなので詳細は言えないけど、

>いずれにしても、Tomcatの負荷よりFOMAの回線のパンクのほうが先ですよ。
んなこたーないですよ。今のFOMA回線は余裕で数千人同時接続してくるけど、メモリ8GBのTomcat1台は千人同時接続程度で結構ギリギリだし。

評価

0

私がDoCoMoの中の人から聞いたのはもう1年は前なので、その間にかなり増強されてるのかも。
それなら失礼。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。