Meizu マルチ コンピューター ルーム展開計画
なぜマルチ コンピューター ルーム展開を行う必要があるのか
2014 年から 2015 年にかけて Meizu が変革し、売上が爆発的に増加した後、インターネット サービス ビジネスがますます増加し、ユーザー ベースが拡大しました。サイズが大きくなると、従来の 1 つのコンピュータ ルームの拡張アーキテクチャでは Meizu の開発に対応できなくなります。また、国内の複雑なネットワーク環境では、1 つのコンピュータ ルームでは信頼性のニーズを満たすことができなくなります。近年、光ケーブルが掘り返されたり、コンピューター室の停電が頻繁に発生しています。例えば、アリペイの光ファイバーが掘削されて事業が停止したほか、昨年は微信も大規模な障害が発生し、光ファイバーも掘削された。単一のコンピューター室が故障するリスクに加えて、ユーザーは近くのアクセスに対する強い要求も持っています。
技術的な課題
- コンピュータールーム間のネットワーク遅延と帯域幅の制限、オペレーターの専用回線のレンタルは非常に高価であり、信頼性が保証できない
- コンピュータールーム間のトラフィックの正確なスケジューリング。変化が大きすぎてはいけません。
- マルチコンピュータールームソリューションの最大の課題は、一貫性など、コンピュータールーム間のネットワーク遅延によって引き起こされる一連の問題です。 もちろん、業界には、アリババの統合ソリューションなど、いくつかの成熟したソリューションもあります。ここでは、Tencent のセット ソリューションと Weibo のクロス コンピュータ ルーム ソリューションは主に集中型で書かれており、迅速な切り替えソリューションを提供します。
Meizu マルチコンピューター ルーム ソリューション
上記のソリューションから教訓を引き出し、ビジネスを整理し、次の 2 つのビジネスにマッピングします:
もっと読んで少なく書くユーザーごとに分ける- もっと読む 書くことはまれです
- このタイプのビジネスは主に読み取りで、書き込みはほとんどないため、このタイプのビジネスは読み取り専用ビジネスとして分類されます。
API は、モバイル アプリ ストアが使用するインターフェイスを提供します。主にリスト データを読み取り、ユーザーに表示します。この部分の「読み取り」については、基本的にキャッシュから読み取り、データベースへの依存度は非常に低くなります。 ; そして、「書き込み」は統計やコメントなどから得られます。
- このバックエンドは、企業の社内運用部門が使用するために提供されており、リストの保守、アプリケーションのアップロード、リストの削除などの機能にも多くの「書き込み」が含まれています。
- ビジネスの可用性を評価すると、アプリケーション ストア (API インターフェイス) の可用性要件が最も高くなりますが、運用バックエンドと開発者コミュニティの可用性要件はわずかに低くなります。
データの一貫性を確保するために、「書き込み」は依然としてシングルポイント書き込みであり、コンピューター ルーム全体でコア コンピューター ルームに直接書き込まれます。 2 つのタイプがあります。1 つは、メッセージ キューを介してリモート コンピューター ルームに書き込む方法です。コンピューター ルームのネットワークに問題がある場合でも、「書き込み」は MQ に蓄積されるため、基本的にユーザー エクスペリエンスには影響しません。蓄積されたデータはネットワークがスムーズになった後に取り出されます。もう 1 つの種類の「書き込み」では、「書き込み」が成功したかどうかをすぐに知る必要があるため、この部分のネットワークに問題がある場合は、書き込みが失敗する可能性があるため、コンピュータ ルーム全体のデータベースに直接書き込まれます。ダウングレード処理を行います。
また、コンピューター室のトラフィックのスケジュールには GSLB を使用していますが、これについては後で詳しく説明します。
読み書きバランスのとれたビジネス
ここでの読み書きバランスのとれたビジネスの重要な特徴は、すべてのデータをユーザーの次元に従ってセグメント化できることです。それらの間にはほとんど相関関係がありません。たとえば、当社の同期サービスは、携帯電話を紛失したり、更新して消去する必要がある場合に、携帯電話上のすべてのデータ (連絡先、テキスト メッセージ、設定、Wi-Fi、入力方法の設定など) をクラウドに同期します。 、いつでもデータを取得できるので、データが失われないようにしてください。
以下は同期ビジネスのシングルマシンルームアーキテクチャです:
私たちのユーザーアクセスインターフェイスも2つの部分に分かれており、1つの部分は携帯電話用の実用的なAPIであり、もう1つの部分は直接操作(変更)用です。連絡先の)Web 側。 Web インターフェースで取得したリクエストは、連絡先同期、メッセージ同期、設定項目同期などのバックエンドサービスに転送されます。バックエンド サービスは、ユーザーのルーティング情報を別の DB シャードに保存します。ここでクロスコンピュータールームソリューションを作成すると、ユーザーに応じてグローバルルーティングを直接実行し、異なるコンピュータールームにルーティングできるため、より便利です。
マシンルーム間のアーキテクチャ図は次のとおりです:
ビジネス データとサービスを 1 つのユニットにパッケージ化しており、1 つのユニットが一定数のユーザーにサービスを提供します。各ユニットには完全なデータとサービスが含まれており、個別に展開できます。各コンピュータ室には複数のユニットがあり、各ユーザーのデータはローカル バックアップとリモート バックアップがあります。コンピューター室に障害が発生した場合、バックアップ データを取り出してユーザーに提供できます。
ユーザーがAPIを通じて当社のサービスにアクセスする場合、GSLBはスケジューリングに使用され、ユーザーはまずGSLBからユーザーデータの場所を取得します(ユーザーデータは同時に特定のコンピュータールームでのみ提供されます)。次に、クライアント要求をスケジュールします。 適切なコンピューター室に移動します。
Web サービスは GSLB を使用できないため、ユーザーのリクエストを正確にスケジュールできないため、Web リクエストは困難です。この計画については、後の交通スケジュールで説明します。
コンピューター室のトラフィックの正確なスケジューリング
複数のコンピューター室になると、トラフィックのスケジューリングが必要になります。トラフィックをスケジュールする最も簡単な方法は、スマート DNS サービスを使用することです。以下に示すように:
LocalDNS からのリクエスト内の IP に基づいて、どの地域のどの ISP とユーザーを決定し、対応する地域の対応する ISP とコンピューター ルームにスケジュールすることができるのは DNS のみです。スマートDNSのIPライブラリです。いくつかの欠点があります:
- DNS ハイジャック 私たちの国では、特に第 2 層および第 3 層都市の事業者によって、DNS ハイジャックが時々発生します。これは基本的にスマートDNSでは解決できません
- ローカルDNSが8.8.8.8などユーザーが指定したDNSサーバーに設定されている場合、スマートDNSサーバーが取得するLocalDNSは米国のアドレスとなりISPに対応できません。スマート DNS サービスは、設計者の好みにのみ基づくことができ、分析が提供されると、ユーザーは間違った ISP や間違ったコンピューター ルームを見つける可能性があります。
- ユーザー情報に基づいてスケジュールを設定することはできません。一部のデータは、特定のコンピューター室でのみ利用可能です。DNS プロトコルはユーザー識別子を運ぶことができないため、正確な分析を行うことは困難です。
- サーバーのダウンタイムを検出できません。
そのため、特定の企業向けに、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 の中核となるコンピュータ室の移行計画と問題の解決策を紹介します。
複数のコンピューター室の展開に関してどのような洞察と経験をお持ちですか?コメントでお気軽に共有してください。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
