技術共有

Spring Cloud Alibaba - Sentinel 分散システムのトラフィック監視

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

ここに画像の説明を挿入します

概要

マイクロサービスの人気が高まるにつれて、サービスとサービス間の安定性がますます重要になります。 Sentinel は、分散型の多言語異種サービス アーキテクチャのトラフィック管理コンポーネントであり、主にトラフィックをエントリ ポイントとして使用し、トラフィック ルーティング、トラフィック制御、トラフィック シェーピング、サーキット ブレーカーの低下、システム適応型過負荷保護、ホット スポット トラフィック保護などをカバーします。開発者がマイクロサービスの安定性を確保できるようにするためのディメンション。

一言で言えば、Sentinel はトラフィック管理コンポーネントであり、Spring Cloud Circurk Breaker に相当します。

特徴

  • 豊富なアプリケーション シナリオ: Sentinel は、フラッシュ セール (つまり、システム容量が耐えられる範囲内でバースト トラフィックが制御される)、メッセージのピーク シェービングなど、過去 10 年間のアリババのダブル イレブン トラフィック プロモーションの中核となるシナリオを引き継ぎました。谷埋め、クラスター トラフィック制御、ダウンストリームの利用できないアプリケーションのリアルタイム融合など。
  • 完全なリアルタイム監視: Sentinel はリアルタイム監視機能も提供します。コンソールでは、アプリケーションに接続されている単一マシンの第 2 レベルのデータ、さらには 500 台未満のマシンからなるクラスターの概要操作ステータスも確認できます。
  • 広範なオープンソース エコシステム: Sentinel は、Spring Cloud、Apache Dubbo、gRPC、Quarkus との統合など、他のオープンソース フレームワーク/ライブラリとのすぐに使える統合モジュールを提供します。対応する依存関係を導入し、簡単な構成を実行するだけで、Sentinel にすぐに接続できます。同時に、Sentinel は Java/Go/C などの複数の言語でネイティブ実装を提供します。
  • 完全な SPI 拡張メカニズム: Sentinel は、使いやすい完全な SPI 拡張インターフェイスを提供します。拡張インターフェイスを実装することで、ロジックをすばやくカスタマイズできます。たとえば、カスタマイズされたルール管理、動的データ ソースの適応などです。

Sentinel の主な機能:
ここに画像の説明を挿入します

基本的な考え方

リソース

リソースは Sentinel の重要な概念です。これは、アプリケーションによって提供されるサービス、アプリケーションによって呼び出される別のアプリケーションによって提供されるサービス、さらにはコードの一部など、Java アプリケーション内のあらゆるものにすることができます。次のドキュメントでは、リソースを使用してコード ブロックを説明します。

Sentinel API を通じて定義されたコードがリソースである限り、Sentinel によって保護できます。ほとんどの場合、メソッド シグネチャ、URL、さらにはサービス名をリソース名として使用して、リソースを識別できます。

ルール
リソースのリアルタイム ステータスに関して設定されるルールには、フロー制御ルール、サーキット ブレーカーの劣化ルール、システム保護ルールなどがあります。すべてのルールはリアルタイムで動的に調整できます。 (ルールは Sentinel コンソール、YML 設定、Java コードで設定できます)

センチネルをインストールする

Sentinel の使用は 2 つの部分に分けることができます。

  • コア ライブラリ (Java クライアント): フレームワーク/ライブラリに依存せず、上で実行できます。 Java 8以降ランタイム環境のバージョンに優れており、Dubbo/Spring Cloud などのフレームワークも適切にサポートしています。
  • ダッシュボード: ダッシュボードは主に、プッシュ ルールの管理、監視、およびマシン情報の管理を担当します。

ダウンロードパス:https://github.com/alibaba/Sentinel/releases

ダウンロード後、jar パッケージを見つけてコマンドを実行して Sentinel コンソールを起動します。

java -jar sentinel-dashboard-xxx.jar

ローカル環境には jdk8 バージョン以降が必要で、ポート 8080 は占有されていません (Sentinel コンソール ポート)。
Sentinel 1.6.0 以降、Sentinel コンソールには基本的なログイン機能が導入されており、デフォルトのユーザー名とパスワードは両方とも Sentinel です。
ここに画像の説明を挿入します

マイクロサービスにSentinelを導入する事例

新しいマイクロサービスを作成し、Nacos と Sentinel を導入し、サービスを Nacos に登録し、サービスのトラフィック監視、サーキット ブレーカー、ダウングレードを実行します。

依存関係を導入する