センチネルのクイックスタート

リフト春クラウド制限ダウングレードのコンポーネントは、通常、最初はNetflixのHystrixを考えます。

しかし、2018年の終わりには、ネットフリックスには正の開発Hystrixは、プロジェクトがメンテナンスモードにしないであろうことを発表しました。当局は、次の焦点は、アプリケーションのリアルタイム性能に対応するため、その適応実装にもっと注意をシフトするようHystrixの安定の十分の1.5.18バージョンは、ネットフリックスは、既存のアプリケーションのニーズを満たすと述べました。新しいアプリケーションのためのヒューズの需要のために、他の項目を達成するために使用される、NetflixがResilience4jをお勧めします。

春クラウドNetflixの重要なスイートとして、Hystrixはマイクロサービスの安定性を保護するために好適な用途となっています。実際には、ネットフリックスとResilience4jに加えて、格下げされ、新しいオプションがアリババセンチネルコンポーネントで制限します。

公式文書をセンチネル

まず、オープンソースセンチネルアリさんのプロフィール

2018年8月、アリババはセンチネルが一緒にダボアダプタの組み合わせで、オープンソースになることを発表し、Apacheのダボコミュニティに寄贈しました。
ここに画像を挿入説明
1.Sentinelの歴史
2012年に、センチネルが生まれた、入口フロー制御のための主な機能。
2013-2017、アリババグループ内のセンチネル急速な発展は、すべてのコアシーンをカバーし、技術的なモジュールの基礎となりました。Sentinelは、トラフィックの多くを蓄積し、したがって、シーン全体、および生産慣行が所有します。
2018年、センチネルオープンソース、そして進化し続けています。

主流のフレームワークの2.Sentinel適応
Sentinelは二つの部分に分かれて:

ダボ/春の雲や他のフレームワークとは、良いサポートを持っていながら、コアライブラリ(Javaクライアント)は、それが任意のJava実行環境上で実行することができ、任意のフレームワーク/ライブラリに依存しません。
コンソール(ダッシュボード)春ブーツの開発者、パックした後、直接そのようにTomcatに基づいてコンテナとして追加のアプリケーションを実行することはできません。

Sentinelはその上の春の雲、ダボを含む主流のフレームワークの様々な、フィット。センチネルオープンソースの豊富なアリババマイクロサービスオープンソースシステム、アセンブリの安定性は、より多くのソリューションを提供しています。

二つは、センチネルは、すべての問題を解決します

大規模なマイクロサービスアーキテクチャのシーンでは、必要があります可能な限りダウンタイムを削減し、サービスの可用性を向上させるために、雪崩サービスを避けます。ダウングレードを制限することは非常に重要なツールであると、具体的な実装方法は、すなわち、降格、ヒューズやアイソレーションを制限する、文字の格言のように要約することができます。
出発点、流量制御、ヒューズダウングレード、負荷保護システムの寸法安定性を保護複数のサービスとして流量センチネル。

流量制限
上記の閾値は、代わりにリソースを呼び出すので、要求に直接返すように設定されている場合は、事前に設定されている暗示名前を制限するには、リクエストの種類ごとに最高のしきい値をQPS。
Traffic Sentinelは、同時スレッドの統計的な数のための2つの統計的手法を提供したときにQPSを超え、別のは、同時実行スレッド数が新しい要求により、しきい値セットはすぐに拒否されます超えると、統計QPSです設定された閾値は、システムは直接、コールドスタートを拒否することができ、一定の速度は、フロー制御などの機能に対応する3つの方法です。

ヒューズダウングレード
対象または低速サービスコールのタイムアウトの数が多い場合は、通話サービスを吹き、この時間は、後続の呼び出しの要求のために、ターゲット・サービス、ダイレクトリターン、クイックリリースのリソースを呼び出すために継続しません。ヒューズは、一般的な目標は、状況改善サービスコールを復元する場合、別のリカバリ戦略を設定する必要があります。
こうしたサービスAなどのサービス、間の相互依存がある1秒が数十QPSの何千ものをしましたが、サービスは1秒Bと十QPSの何千ものを満たすことができないときは、高い周波数でのサービスAを確保するために、どのように、サービスをサービスBを呼び出しますBはまだそれを働かせることができますか?
より一般的な状況は、呼び出しサービスAサービスBは、状況が長いサービスAで、その結果、コール頻度を満たすことができないサービスBの長すぎる応答時間の結果も受けてケースが発生したため、リップルが全体の依存チェーンに影響を与えているときでありますすべてのアプリケーション、および今回我々は、定着と降格の方法を必要としています。Sentinelは、リソース同時スレッドの数によるサービスの制限および応答時間にダウングレードやヒューズに二つの手段をダウングレードします。

シェーピング
我々はランダム、不規則な、制御不能な特性に遭遇したが、システムの処理能力がしばしば制限され、我々はシステムの処理能力、すなわちルールに基づいてトラフィックシェーピングを必要とし、それによってに従い、通常のトラフィックを我々は、トラフィックに対処する必要があります。
ここでは良いプレゼンテーションを作るためにトラフィックシェーピングの写真です:

ここに画像を挿入説明
センチネル、パフォーマンス指標は、資源と自分自身の使用との関係を柔軟に組み合わせることができる呼び出すことにより、トラフィックを制御するために3次元の効果を制御します。

システム負荷保護
アバランシェ効果に非常になりやすいmicroService、回避サービスのダウンタイムの必要性この最も危険な状況。

雪崩防止、システムの保護は重要な部分です。それは入力する要求を続けた場合ときに高いシステム負荷時間は、応答することができ、システムがクラッシュする可能性があります。
Sentinelシステム次元ネットワーク負荷分散がアップし、他のマシンに転送され、このベアラトラフィック存在マシンになり、クラスタ環境では、適応保護を提供しながら。

三、センチネル主な特長

ここに画像を挿入説明

应用场景
Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。

支持实时监控
Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

适配多种开源组件
Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。

支持SPI ,扩展简单
Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

四、Sentinel 开源生态

ここに画像を挿入説明
Sentinel支持当前的主流微服务开发套件,特别对Dubbo和Spring Cloud 做了比较好的支持,并且作为 Spring Cloud Alibaba套件的重要实现。

五、Sentinel对比Hystrix

Hystrix 的关注点在于以 隔离 和 熔断 为主的容错机制,超时或被熔断的调用将会快速失败,并可以提供 fallback 机制。

而 Sentinel 的侧重点在于:

  • 多样化的流量控制
  • 熔断降级
  • 系统负载保护
  • 实时监控和控制台
    一图胜前言,对 Sentinel和Hystrix的特性做一个表格来对比。

ここに画像を挿入説明

发布了38 篇原创文章 · 获赞 5 · 访问量 896

おすすめ

転載: blog.csdn.net/spring_zhangH/article/details/104074231