2014 年から 2015 年にかけて Meizu が変革し、売上が爆発的に増加した後、インターネット サービス ビジネスがますます増加し、ユーザー ベースが拡大しました。サイズが大きくなると、従来の 1 つのコンピュータ ルームの拡張アーキテクチャでは Meizu の開発に対応できなくなります。また、国内の複雑なネットワーク環境では、1 つのコンピュータ ルームでは信頼性のニーズを満たすことができなくなります。近年、光ケーブルが掘り返されたり、コンピューター室の停電が頻繁に発生しています。例えば、アリペイの光ファイバーが掘削されて事業が停止したほか、昨年は微信も大規模な障害が発生し、光ファイバーも掘削された。単一のコンピューター室が故障するリスクに加えて、ユーザーは近くのアクセスに対する強い要求も持っています。
Meizu マルチコンピューター ルーム ソリューション
API は、モバイル アプリ ストアが使用するインターフェイスを提供します。主にリスト データを読み取り、ユーザーに表示します。この部分の「読み取り」については、基本的にキャッシュから読み取り、データベースへの依存度は非常に低くなります。 ; そして、「書き込み」は統計やコメントなどから得られます。
データの一貫性を確保するために、「書き込み」は依然としてシングルポイント書き込みであり、コンピューター ルーム全体でコア コンピューター ルームに直接書き込まれます。 2 つのタイプがあります。1 つは、メッセージ キューを介してリモート コンピューター ルームに書き込む方法です。コンピューター ルームのネットワークに問題がある場合でも、「書き込み」は MQ に蓄積されるため、基本的にユーザー エクスペリエンスには影響しません。蓄積されたデータはネットワークがスムーズになった後に取り出されます。もう 1 つの種類の「書き込み」では、「書き込み」が成功したかどうかをすぐに知る必要があるため、この部分のネットワークに問題がある場合は、書き込みが失敗する可能性があるため、コンピュータ ルーム全体のデータベースに直接書き込まれます。ダウングレード処理を行います。
また、コンピューター室のトラフィックのスケジュールには GSLB を使用していますが、これについては後で詳しく説明します。
読み書きバランスのとれたビジネス
ここでの読み書きバランスのとれたビジネスの重要な特徴は、すべてのデータをユーザーの次元に従ってセグメント化できることです。それらの間にはほとんど相関関係がありません。たとえば、当社の同期サービスは、携帯電話を紛失したり、更新して消去する必要がある場合に、携帯電話上のすべてのデータ (連絡先、テキスト メッセージ、設定、Wi-Fi、入力方法の設定など) をクラウドに同期します。 、いつでもデータを取得できるので、データが失われないようにしてください。
ここでクロスコンピュータールームソリューションを作成すると、ユーザーに応じてグローバルルーティングを直接実行し、異なるコンピュータールームにルーティングできるため、より便利です。
マシンルーム間のアーキテクチャ図は次のとおりです:
ビジネス データとサービスを 1 つのユニットにパッケージ化しており、1 つのユニットが一定数のユーザーにサービスを提供します。各ユニットには完全なデータとサービスが含まれており、個別に展開できます。各コンピュータ室には複数のユニットがあり、各ユーザーのデータはローカル バックアップとリモート バックアップがあります。コンピューター室に障害が発生した場合、バックアップ データを取り出してユーザーに提供できます。
ユーザーがAPIを通じて当社のサービスにアクセスする場合、GSLBはスケジューリングに使用され、ユーザーはまずGSLBからユーザーデータの場所を取得します(ユーザーデータは同時に特定のコンピュータールームでのみ提供されます)。次に、クライアント要求をスケジュールします。 適切なコンピューター室に移動します。
Web サービスは GSLB を使用できないため、ユーザーのリクエストを正確にスケジュールできないため、Web リクエストは困難です。この計画については、後の交通スケジュールで説明します。
複数のコンピューター室になると、トラフィックのスケジューリングが必要になります。トラフィックをスケジュールする最も簡単な方法は、スマート DNS サービスを使用することです。以下に示すように:
LocalDNS からのリクエスト内の IP に基づいて、どの地域のどの ISP とユーザーを決定し、対応する地域の対応する ISP とコンピューター ルームにスケジュールすることができるのは DNS のみです。スマートDNSのIPライブラリです。いくつかの欠点があります:
そのため、特定の企業向けに、GSLB サービスにアクセスしました。
このサービスは、リクエストを開始する前に、独自の GSLB サービス (または HttpDNS) にアクセスすることで、ユーザーを連れて行くことができます。データがどのコンピュータ室にあるかを特定し、IP を使用してビジネス サービスにアクセスするための識別。
はいくつかの明白な利点をもたらします:
* 可以根据IP或者UID等等信息精确调度。* 避免DNS劫持。* 用户手工设置DNS也不会调度错误。
現在、上記のアプリケーション センター、ユーザー同期 API アクセスなど、すべてのクライアント アクセスは GSLB に接続されています。
しかし、この解決策はクライアント側の HTTP および HTTPS リクエストにのみ適しており、ブラウザーは GSLB が何であるかを認識しません。ユーザー同期 API アクセスは GSLB を使用して実行できますが、Web にアクセスする場合、ブラウザーが GSLB を認識しないため、GSLB をトラフィック スケジュールに使用できません。また、スマート DNS を使用している場合は、ユーザー ID に基づいてトラフィックを正確にスケジュールできません。
上記の考慮事項に基づいて、私たちは 3 番目のソリューションである GSLB + スマート DNS を提案しました。
ユーザーがサービスを要求する前に、DNS によって解決されたサーバーを見つけてデータを取得します。 GSLB サービスは、ユーザーを検索します。 ユーザー データがこのコンピューター ルームにある場合、データは直接返されます。それ以外の場合、ユーザーの要求は適切なコンピューター ルームにリダイレクトされ、再開始されます。リクエスト。
この解決策により、ユーザーのブラウザーのドメイン名が変更され、ユーザー エクスペリエンスに影響を与える可能性があります。また、ドメイン名のハイジャックは回避できません。
この記事では、主に Meizu の複数コンピュータ室の災害復旧計画とその導入過程で遭遇した問題点と対策、Meizu の中核となるコンピュータ室の移行計画と問題の解決策を紹介します。
複数のコンピューター室の展開に関してどのような洞察と経験をお持ちですか?コメントでお気軽に共有してください。