0

Solaris で Tuxedo 11.1 を使用する....

質問は、サーバーごとにサービスを分離するときのパフォーマンス/管理に関する考慮事項です。約 250 のサービスを 11 のサービスとして提供される 11 の状況に削減しようとしている開発ギグがあります。アイデアは、大まかに同じ顧客情報を返す重複したサービスが豊富にあるということであり、この「カスタマイズ」のオーバーフロー (主にサブスクライバーの特定のニーズを満たすために行われる) を多くの顧客の状況 ( 「連絡先情報についてすべて教えてください」、「他の人との関係についてすべて教えてください」など)。これらのサービス状況では、より多くのデータが配信され、明らかにより多くの呼び出しが 1 つのボトルネック (水平方向にスケーリングする必要があります) に集中する可能性があります。たとえば、「顧客 ID を取得する」などのサービスがあります。3 つのドメイン間で (同じデータベースに対して) 1 秒間に 20 回 (平均 20 ミリ秒) 呼び出されます。誰かの「識別」を取得すると、戻り値が多少ポリモーフィックであるにもかかわらず、20 の異なるフレーバーを持つことができます (あちこちに余分なプロパティがあるかもしれませんが、基本情報は同じです)。

これらの 11 の状況/サービスをパッケージ化する最善の方法は何ですか? それらのすべての情報を単一の Tuxedo サーバーに配置し、特定のサービス (おそらく単一のサービス) を持つインスタンスを切り出します。それとも、読みやすさのためにサーバーごとに 1 つのサービスですか? 単一のサーバーにすべてを積み上げた場合、クロプティング時のメモリ ヒットはどれくらいですか? クロプされているサービスだけがメモリに置かれますか、それともサーバーに定義されたすべてのものですか? 私たちにとって深刻な問題ではありませんが (私たちの公園の大きさを考えると)、好奇心旺盛です。

大まかな概算 (開発がどのように実装されているかについての詳細な知識がない場合) は、サービスが 20 c/s * 20 (今日のさまざまなフレーバー) * 3 (ドメイン) = 1 秒あたり 1200 の呼び出しを処理する必要がある可能性があるということです。;-)

4

1 に答える 1

0

それとも、読みやすさのためにサーバーごとに 1 つのサービスですか? 単一のサーバーにすべてを積み上げた場合、クロプティング時のメモリ ヒットはどれくらいですか?

ガク!それをしないでください!

TUXEDO を使用することの要点はスケーラビリティです。TUXEDO でのスケーラビリティの鍵は、読みやすさやプログラマの利便性に関係なく、サービスを慎重に決定することです。私はさまざまな顧客や TUXEDO プロフェッショナル サービス組織と 10 ~ 12 回の TUXEDO 設計セッションを経験してきました。そのうちのいくつかは、TUXEDO コードの最初の行を書いた Marc Carges とのセッションでした。

ほとんどの場合、顧客はある時点でサービスの定義方法に疑問を持ちます。反対意見は通常、「クライアント アプリケーションのコーディングがより困難になる」、または「極端に思える」という内容でした。最終的な答えはいつも同じでした。Marc Carges の反応は軽快でした。彼は明らかにこれらの反対意見に非常に慣れていて、次のように答えていました。

スケーラビリティは難しいです。私はそれを行う方法を知っています。これがその方法です。

どのようなサービスにするかを決定する際の第 1 の要因は、サービスが利用するデータベース接続について考えることです。完全な TUXEDO サービスでは、データベース内の 1 つのテーブルが開かれ、そのテーブルには 1 つのインデックスが設定されます。サービスがヒットするデータベース リソースが少ないほど良い結果が得られます。100% 純粋で完璧な TUXEDO サービスを実現することは実際には不可能なので、妥協を始めますが、ポイントは 1 つのサービスに必要なデータベース リソースを最小限に抑えることであることに常に留意してください。

TUXEDO 自体について心配する必要はありません。スケーラビリティを妨げているのはデータベースであり、データベースをスケーリングするのは TUXEDO の役割です。TUXEDO は非常に軽量で、それ自体が高度にスケーラブルであるため、設計上の決定が TUXEDO 自体に与える影響について心配する必要はありません。設計上の決定がデータベース エンジンに及ぼす影響を常に考慮してください。

于 2012-04-01T15:26:38.457 に答える