PD マイクロサービス

v8.0.0 以降、PD はマイクロサービス モードをサポートします。このモードでは、PD のタイムスタンプ割り当て機能とクラスター スケジューリング関数が、独立してデプロイされた次の 2 つのマイクロサービスに分割されます。これにより、これら 2 つの関数がPD のルーティング機能から分離され、PD はメタデータのルーティング サービスに集中できるようになります。

  • tsoマイクロサービス: クラスター全体に対して単調に増加するタイムスタンプ割り当てを提供します。
  • schedulingマイクロサービス: 負荷分散、ホットスポット処理、レプリカ修復、レプリカ配置など、クラスター全体のスケジュール関数を提供します。

各マイクロサービスは独立したプロセスとしてデプロイされます。マイクロサービスに複数のレプリカを構成すると、マイクロサービスはプライマリ/セカンダリ フォールト トレラント モードを自動的に実装し、サービスの高可用性と信頼性を確保します。

使用シナリオ

PD マイクロサービスは通常、PD のパフォーマンスのボトルネックを解決し、PD サービスの品質を向上させるために使用されます。この機能を使用すると、次の問題を回避できます。

  • PD クラスターの過度の圧力による TSO 割り当てのロングテールレイテンシーまたはジッター
  • スケジューリングモジュールの障害により、クラスタ全体のサービスが利用不可になる
  • PDのみに起因するボトルネックの問題

さらに、スケジューリング モジュールが変更された場合、PD を再起動せずにschedulingマイクロサービスを個別に更新できるため、クラスターの全体的なサービスへの影響を回避できます。

注記:

クラスターのパフォーマンスのボトルネックの原因が PD でない場合は、マイクロサービスを有効にする必要はありません。マイクロサービスを使用するとコンポーネントの数が増え、運用コストが上昇するためです。

制限

  • 現在、マイクロサービスtso動的な開始と停止をサポートしていません。マイクロサービスtsoを有効または無効にした後、変更を有効にするには PD クラスターを再起動する必要があります。
  • TiDBコンポーネントのみがサービス検出を通じてtsoマイクロサービスへの直接接続をサポートしますが、他のコンポーネントはタイムスタンプを取得するために PD を通じてtsoマイクロサービスにリクエストを転送する必要があります。
  • マイクロサービスはデータ レプリケーション自動同期 (DR 自動同期)機能と互換性がありません。
  • マイクロサービスは TiDB システム変数tidb_enable_tso_follower_proxyと互換性がありません。
  • 休止状態領域クラスター内に存在する可能性があるため、 schedulingマイクロサービスのプライマリとセカンダリの切り替え中は、冗長なスケジューリングを回避するために、クラスターのスケジューリング機能が一定期間 (最大peer-stale-state-check-interval 、デフォルトでは 5 分) 使用できなくなる可能性があります。

使用法

PD マイクロサービスはTiDB OperatorまたはTiUP使用してデプロイできます。

  • TiDB Operator
  • TiUP
  • TiUP Playground

TiDB Operator を使用してデプロイされた TiDB クラスターの場合、次のドキュメントに従って PD マイクロサービスをデプロイおよび構成できます。

TiUPを使用してデプロイされた TiDB クラスターの場合、次のドキュメントに従って PD マイクロサービスをデプロイおよび構成できます。

TiUP Playground を使用して TiDB ローカル クラスターに PD マイクロサービスをデプロイおよび構成するには、次のドキュメントを参照してください。

注記

PD マイクロサービスをデプロイして使用するときは、次の点に注意してください。

  • マイクロサービスを有効にしてクラスターの PD を再起動すると、PD はクラスターへの TSO の割り当てを停止します。したがって、マイクロサービスを有効にするときは、クラスターにtsoマイクロサービスをデプロイする必要があります。

  • schedulingマイクロサービスがクラスターにデプロイされている場合、クラスターのスケジューリング機能はschedulingのマイクロサービスによって提供されます。5 schedulingのマイクロサービスがデプロイされていない場合でも、クラスターのスケジューリング機能は PD によって提供されます。

  • schedulingマイクロサービスは動的切り替えをサポートしており、デフォルトで有効になっています ( enable-scheduling-fallbackデフォルトはtrueです)。 schedulingマイクロサービスのプロセスが終了した場合、PD はデフォルトでクラスターのスケジューリング サービスを引き続き提供します。

    schedulingマイクロサービスと PD のバイナリ バージョンが異なる場合、スケジューリング ロジックの変更を防ぐために、 pd-ctl config set enable-scheduling-fallback false実行してschedulingマイクロサービスの動的切り替え機能を無効にできます。この機能を無効にすると、 schedulingマイクロサービスのプロセスが終了しても PD はスケジューリング サービスを引き継ぎません。つまり、 schedulingマイクロサービスが再起動されるまで、クラスターのスケジューリング サービスは利用できなくなります。

ツールの互換性

マイクロサービスは、データのインポート、エクスポート、およびその他のレプリケーション ツールの通常の使用には影響しません。

よくある質問

  • PD がパフォーマンスのボトルネックになるかどうかをどのように判断できますか?

    クラスターが正常な状態にある場合は、Grafana PD パネルで監視メトリックを確認できます。メトリックTiDB - PD server TSO handle timeにレイテンシーの顕著な増加が見られる場合、またはメトリックHeartbeat - TiKV side heartbeat statisticsに保留中の項目が多数見られる場合、PD がパフォーマンスのボトルネックになっていることを示しています。

このページは役に立ちましたか?