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