センチネルの紹介:
マイクロサービスの普及に伴い、サービス間の安定性がますます重要になってきています。Sentinel は、トラフィックをエントリ ポイントとして利用し、トラフィック制御、サーキット ブレーカーの劣化、システム負荷保護などのさまざまな側面からサービスの安定性を保護します。
Sentinel は 2 つの部分に分かれています。
コア ライブラリ (Java クライアント: フレームワーク/ライブラリに依存せず、すべての Java ランタイム環境で実行でき、Dubbo / Spring Cloud およびその他のフレームワークも適切にサポートします。 コントロール (ダッシュボード: Spring Boot に基づいて開発され、直接実行可能)
パッケージ化 実行するには、Tomcat などの追加のアプリケーション コンテナーは必要ありません。
センチネルとヒストリックスの比較
関数 | センチネル | ヒストリックス |
---|---|---|
隔離ポリシー | 同時実行性に基づく | スレッドプール分離/セマフォ分離 |
サーキットブレーカーのダウングレード戦略 | 応答時間または故障率に基づく | 故障率に基づく |
リアルタイムインジケーターの実装 | スライドウィンドウ | スライディング ウィンドウ (RxJava ベース) |
ルール設定 | 複数のデータソースをサポート | 複数のデータソースをサポート |
スケーラビリティ | 複数の拡張ポイント | プラグインフォーム |
注釈ベースのサポート | 近日公開 | サポート |
通話リンク情報 | 同期呼び出しのサポート | サポートしません |
制限する | QPS/同時実行に基づいて、呼び出し関係に基づいた電流制限をサポート | サポートしません |
トラフィックシェーピング | スロースタート、速度スタビライザーモードをサポート | サポートしません |
システム負荷保護 | サポート | サポートしません |
リアルタイム監視API | すべての種類 | 比較的単純な |
コンソール | すぐに使用できるルールの設定、第 2 レベルの監視、マシン検出などの表示を行うことができます。 | 不完全 |
共通フレームワークへの適応 | サーブレット、Spring Cloud、Dubbo、gRPC など | サーブレット、Spring Cloud Netflix |
Sentinel コンソールのインストール
ダウンロードアドレス:https://github.com/alibaba/Sentinel/releases
インストール環境:java1.8
起動コマンド
java -Dserver.port=8858-Dcsp.sentinel.dashboard.server=localhost:8858 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
GitHub のダウンロード速度が遅いため、代わりに Docker コンテナのインストールが使用されました
docker pull bladex/sentinel-dashboard
docker run -d -p 8858:8858 -name sentinel bladex/sentinel-dashboard
docker ps を使用してコンテナが実行されているかどうかを確認します。
デフォルトのアドレス localhost:8858 を開きます。 コントロール ページに入ります。
ポート 8858 にアクセスして、Sentinel バックエンド管理インターフェイスにアクセスします。アカウントとパスワードは両方とも監視対象です。
nocs と組み合わせて使用する
サービスを作成し、pom ファイルに依存関係を導入します。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
yml設定ファイル
server:
port: 8099
spring:
application:
name: a-server
#ncaos地址
cloud:
nacos:
discovery:
server-addr: 39.105.151.241:8848
#sentinel地址
sentinel:
transport:
dashboard: 39.105.151.241:8858
#微服务所在服务器ip sentinel监控程序 根据client-ip+port端口拉取信息
client-ip:localhsot
#微服务节点,sentinel服务会主动拉取该端口数据
port:8719
スタートアップクラス
@SpringBootApplication
@EnableDiscoveryClient
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
プロジェクトを開始し、localhost:8858 を開いて
監視ステータスを表示します。
注: クラウド ホスト サーバーを使用する場合は、マイクロサービス jar をクラウド サーバーにデプロイする必要があります。その後、センチネルはマイクロサービスの監視データをアクティブに取得します。マイクロサービスがローカル 風にある場合、センチネルはクラウド サーバー上にあります。 Winds 上のマイクロサービスにアクセスできません。クラスター ポイント リンクの下にマイクロサービス リソース パスが見つかりません