0

カスタマー エクスペリエンスが中断されないように、新しいコードをどのように本番環境にデプロイしますか?

セッション状態が共有されていない、負荷分散された環境にある e コマース Web サイトを想定してみましょう。Tomcat はアプリケーション サーバーです。

私が思いつくことができる唯一のアイデアは、(1) JavaRebel を使用することですが、これについては経験がなく、何が問題になるかわかりません (たとえば、クラスからメンバーを削除した場合など、セッション オブジェクトの不一致が考えられます) (2 )ユーザーがショッピング体験のどこにいるかをリアルタイムで監視し、新しいアイテムがカートに追加されないようにします。すべての既存の買い物客が注文を完了するか、有効期限が切れるまで待ちます。次にサーバーの電源を切り、新しいコードをデプロイします。

何か案は?それとも、テラコッタのようなものを使用して Web サーバー間でセッション データを共有することが重要な状況ですか? 繰り返しになりますが、セッションのオブジェクト メンバーが削除または追加された Web サーバーに新しいコードをデプロイするにはどうすればよいでしょうか。

4

2 に答える 2

2

私が見た一般的なアプローチ:

  • 状態があまりない場合は、クライアント側の Cookie に保存します。これには、IP アフィニティを必要としないという利点もあるため、リクエストをより均等に分散できます。
  • 共有ストレージ (DB、Terracotta など) - 明らかにこれがボトルネックになる可能性があります
  • 静かな時間に展開し、誰も気付かないことを願っています
  • 新しいセッションのプールからサーバーを削除し、ログを監視してリクエストが終了するのを待ちます
于 2011-04-09T14:06:34.500 に答える
1

一般的なアプローチは、一度に 1 台のサーバーを負荷分散プールから取り出し、そこに新しいコードを展開してからプールに戻すことです。

于 2011-04-09T13:39:32.647 に答える