ホームページ >バックエンド開発 >PHPチュートリアル >PHPプログラマー面接についての感想
昨日、バーティカルコミュニティのスタートアップ企業と面接していたのですが、質問の一つに「複数のサーバーでSESSIONを共有する方法」という質問がありましたが、この質問に対する私の答えは面接官に非常に不満でした。
複数のサーバーでSESSIONを共有 面接官の質問の意図は、複数のサーバー間でSESSIONを共有し、リアルタイムに同期したいということだと理解しましたので、保存するのも一つのアイデアです。 SESSION を SESSION データベースに保存します。これは、すべての SESSION が保存されているのと同じです。面接官は非常に不満を抱き、同時実行性が大きい場合に問題を解決する方法を尋ねました。
segmentfault でこの問題について議論すると、すべての答えは Redis と memcached に関するものであり、複数のサーバーの SESSION を共有することが不可能になります。実は、面接官が知りたいのは「Cloud SESSION」と同様の機能であり、すべてのサーバーが完全にリアルタイム共有できるシナリオは多くありません。最初にこの質問を受けたとき、私の考えは非常に混乱しており、最初に思いついたのは、SESSION は複数のサーバー間でリアルタイムに共有され、回答は db に保存されるということでした。しかし、面接官は繰り返し強調しました。同時実行の量が非常に多いこと。
実際、実際の解決策はゲームサーバーと分割サーバーを参照できます。
ゲームサーバーの同時実行性が高い場合、プレイヤーを常に参加させることは不可能です。サーバーの耐久制限に達すると、サーバーがいっぱいであるため入力できないことを示すメッセージが表示されます。冒頭で「ハードウェア構成や帯域幅が現状のニーズに合っているかどうかをまず検討すべきです」この一言で面接官はさらに不満を感じました。実際には、多くの場合、ハードウェア構成と帯域幅を改善することで同時実行性のプレッシャーを大幅に軽減できます。その後、プログラムとサーバーを最適化して同時実行性の問題を解決することが、この部分のプログラムの使用に限定されるべきではありません。多くの IT 企業は 2G または 4G のメモリ、デュアルコア CPU、SSD ではないハードドライブを使用していますが、いわゆる同時実行性の問題について話しています。
著作権表示: この記事は、ブロガーによって最初に書かれた記事です。ブロガーの許可。