Sentinelを使用してインターフェース電流制限を実装する

センチネルとは

Sentinelの公式タイトルは、分散システム用のトラフィックガードです。名前から判断すると、サービスの安定性を保証するために使用されていることは容易に想像できます。Spring Cloudのサービス安定性保証コンポーネントには、Hystrix(廃止)も含まれています。Sentinelに
はより多くの機能と詳細があるため、SentinelをSpring Cloudアプリケーションに統合する方法、およびSentinelダッシュボードを使用して現在の制限ルールを構成する方法について説明しましょう。

Sentinelを使用してインターフェース電流制限を実装する

Sentinelの使用は2つの部分に分かれています。

  • entinel-dashboard:hystrix-dashboardに似ていますが、より強力です。hystrix-dashboardのようなリアルタイムの監視に加えて、フロー制御ルールとヒューズルールのオンライン保守も提供します。
  • クライアントの統合:各マイクロサービスクライアントは、監視情報をダッシュ​​ボードに表示して表示し、現在の制限またはヒューズルールをリアルタイムで変更するために、クライアントのパッケージとセンチネルの構成を統合する必要があります。

Sentinelダッシュボードをデプロイする

ダウンロードアドレス:sentinel-dashboard-1.6.0.jar Start
by command:

java -jar sentinel-dashboard-1.6.0.jar

開始ポートを変更する必要がある場合:-Dserver.port=8888
デフォルトでは、番兵ダッシュボードはポート8080で開始するため、次の図に示すように、localhost:8080にアクセスして、ポートが正常に開始されたかどうかを確認できます。
ここに画像の説明を挿入注:デフォルトのユーザー名とパスワードはsentinel
、ユーザーのログイン構成に関連しています。以下のパラメーターを起動コマンドに追加して構成できます。

  • - Dsentinel.dashboard.auth.username=sentinel:コンソールのログインユーザー名を指定するために使用されますsentinel
  • - Dsentinel.dashboard.auth.password=123456:コンソールのログインパスワードを123456として指定するために使用されます。これらの2つのパラメーターが省略されている場合、デフォルトのユーザーとパスワードは両方ともsentinel
  • - Dserver.servlet.session.timeout=7200:Spring Bootサーバーセッションの有効期限を指定するために使用されます。たとえば、7200は7200秒を意味し、60mは60分を意味し、デフォルトは30分です。
    図に示すように、
    ログイン成功Sentinelを統合します。
    ステップ1:SpringをSpring Cloudアプリケーションのpom.xmlに導入します。 Cloud AlibabaのSentinelモジュール:
 <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

ステップ2:次のspring.cloud.sentinel.transport.dashboardようなSpring Cloudアプリケーションのパラメーター使用して、センチネルダッシュボードのアクセスアドレスを構成します。

spring.application.name=alibaba-sentinel-rate-limiting
server.port=8001

# sentinel dashboard
spring.cloud.sentinel.transport.dashboard=localhost:8080

ステップ3:メインアプリケーションクラスを作成し、以下のような残りのインターフェイスを提供します。

@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

    @Slf4j
    @RestController
    static class TestController {

        @GetMapping("/hello")
        public String hello() {
            return "didispace.com";
        }

    }

}

手順4:アプリケーションを起動して、localhost:8001 / helloインターフェースにpostmanまたはcurlを介して数回アクセスします。

$ curl localhost:8001/hello
didispace.com

これで、監視ページが表示されます。
センチネル現在の制限ルール
現在の制限ルールを設定する設定QPS、しきい値を構成します。
全体的な構成の効果は、インターフェースの現在の制限ポリシーは、1秒あたり最大2つの要求を許可することです。
ここに画像の説明を挿入現在の制限ルールの
確認次のような現在の制限制御がトリガーされるかどうかを確認します。

$ curl localhost:8001/hello
didispace.com
$ curl localhost:8001/hello
didispace.com
$ curl localhost:8001/hello
Blocked by Sentinel (flow limiting)

参考資料:
センチネル学習教材

オリジナルの記事を8件公開 Likes0 Visits 45

おすすめ

転載: blog.csdn.net/weixin_41213402/article/details/105435617