私は最近マイクロサービスにさらされており、この側面をある程度理解しています。私はあなたとそれを共有します。
Spring Cloudは、スプリングブートに基づいてマイクロサービスを実装するための完全なフレームワークのセットです。 Spring Bootはフレームワークとして、Spring Cloudとしてのマイクロサービスとしてのスプリングクラウドが一緒になって、無視できない新しいフレームワークシステムを形成すると言えます。構成管理、サービス発見、サーキットブレーカー、インテリジェントルーティング、マイクロエージェント、コントロールバス、グローバルロック、意思決定キャンペーン、分散セッション、クラスター状態管理など、マイクロサービス開発に必要なコンポーネントを提供します。 Spring Cloudには多くのサブフレームが含まれています。その中には、Spring Cloud Netflixがフレームワークの1つであり、主にサービスの発見、サーキットブレーカーと監視、インテリジェントルーティング、クライアントロードバランシングなどのモジュールを提供します。
特性
(1)サービス登録と発見であるEurekaは、サービス登録センター、サービスディスカバリークライアント、およびすべての登録サービスを表示するための便利なインターフェイスを提供します。すべてのサービスは、eurekaのサービスディスカバリークライアントを使用して、ユーレカのサーバーに登録しています。
(2)Zuul、Gateway、すべてのクライアントは、このゲートウェイを介してバックエンドサービスにアクセスすることを要求します。特定のルーティング構成を使用して、どのサービスが特定のURLを処理するかを決定できます。登録サービスをEurekaから取得して、リクエストを転送します。
(3)リボン、つまり、負荷分散。 Zuul Gatewayが特定のサービスのアプリケーションにリクエストを送信すると、サービスが複数のインスタンスを開始する場合、特定のロードバランシングポリシーを介してリボンを介して特定のサービスインスタンスに送信します。
(4)サービスクライアント、サービスは、サービスが互いにアクセスする必要がある場合は、RestTemplateを使用してクライアントにアクセスすることができます。デフォルトでリボンを使用して、負荷分散を実現します。
(5)Hystrix、監視および回路ブレーカー。このインターフェイスの監視および回路ブレーカー機能を実現するために、Hystrixタグをサービスインターフェイスに追加するだけです。
(6)Hystrix Dashboard、監視パネルは、各サービスのサービスコールで消費される時間を監視できるインターフェイスを提供します。
(7)タービン、監視集約、Hystrixモニタリングを使用して、各サービスインスタンスの監視情報を開くには表示する必要があります。タービンは、すべてのサービスインスタンスの監視情報を統一された視聴のために1つの場所に集約するのに役立ちます。
その中のドキュメントを参照できます:https://springcloud.cc/spring-cloud-netflix.html
(1)サービス登録および監視センター:
@springbootapplication@enabaleeurekaserver@enablehystrixdashdashboardpublic class application registry {public static void main(string [] args){new SpringApplicationBuilder(application.class).web(true).run(args); }}ここでは、Spring Bootタグを使用した@SpringBootApplicationは、現在のアプリケーションがスプリングブートアプリケーションであることを示しています。このようにして、メイン関数を使用してIDEでアプリケーションを起動するか、パッケージング後にコマンドラインで起動することができます。もちろん、Tomcatなどのサーバーでパッケージウォーパッケージを起動することもできます。タグ@EnableTeureKaserverを使用して、起動中にEurekaサービスレジストリのコンポーネントを起動します。デフォルトでは8761であるポートを聴き、サービス登録を受け取ります。ウェブページを提供します。開いた後、登録サービスを見ることができます。 @EnableHyStrixDashBoardを追加すると、監視ページが提供されます。 Hystrix Monitoringを有効にして、インターフェイスの呼び出しステータスを表示するために、監視するサービスのアドレスを入力できます。もちろん、上記のコンポーネントを使用するには、Spring-Cloud-Starter-Eureka-ServerとSpring-Cloud-Starter-Hystrix-Dashboardに依存するSpring-Boot-Starter-Parentの使用など、Maven POMファイルに対応する依存関係を追加する必要があります。
(2)サービスインターサービスコール:
レストテンプレートとfeignclientのサービスコールを行うには、2つの方法があります。メソッドが何であれ、RESTインターフェイスを介してサービスのHTTPインターフェイスを呼び出し、パラメーターと結果は、デフォルトでジャクソンを介してシリアル化され、脱必要にされます。 Spring MVCのRestControllerで定義されたインターフェイスは、返されたデータはJacksonを介してJSONデータにシリアル化されます。
最初のタイプ:RESTTEMPLATE、RESTTEMPLATE BEANを定義し、それをロードバランスに設定する必要があります。
@configurationPublic class SomecloudConfiguration {@loadbalanced @bean rettemplate resttemplate(){return new RestTemplate(); }}このようにして、必要な場所にこの豆を注入することができます。
Public Class SomeServiceClass {@Autowired PrivateRestTemplateRestTemplate; public string getUserbyId(long userId){userdto results = retttemplate.getForObject( "http:// users/getuserdetail/" + userid、userdto.class);結果を返します。 }}ここで、ユーザーはサービスIDである場合、リボンはサービスインスタンスリストからこのサービスのインスタンスを取得し、リクエストを送信し、結果を取得します。 Object userdtoはシリアル番号を必要とし、その抗シリアル番号は自動的に完了します。
2番目のタイプ:Feignclient
@feignclient(value = "users"、path = "/users")public interface usercompositeservice {@requestmapping(value = "/getUserdetail/{getUserdetail/{id}"、method = requestmethod.get、生成= mediaty.application_json_value)userdto getuserbyid(@pathvariable long id);}@feignclientを使用して言い訳を定義する必要があります。 Spring Cloud Feignは、実装を生成し、対応するユーザーサービスからデータを取得するのに役立ちます。その中で、@feignclient(value = "users"、path = "/users/getUserdetail")の値はサービスIDであり、パスはこのインターフェイスグループのパスプレフィックスです。次のメソッド定義では、Spring MVCインターフェイスのセットアップと同様に、この方法では、対応するURLは/users/getUserdetail/{id}です。次に、それを使用するとき、一般的なサービスを注入してから使用します。
パブリッククラスsomeotherserviceclass {@autowired private usercompositeservice userservice; public void dosomething(){// ...... userdto results = userservice.getuserbyid(userid); //その他の操作...}}(3)回路ブレーカー:
//回路ブレーカー:メソッド呼び出しが失敗したときに失敗したメソッドを置き換えるためにフォールバックメソッドを呼び出す問題を解決するために、フォールトトレランス/ブロッキングカスケードエラーの機能が達成されました。 // fallbackmethodは、フォールバック方法@hystrixcommand(fallbackmethod = "dostudentfallback") @requestmapping(value = "dostudent"、method = requestmethod.get)public string dostudent()を指定します。
その中には、 @enablecircuitbreakerを使用して、サーキットブレーカーのサポートを有効にします。 Spring Cloudは、 @EnableHystrixDashboardアノテーションを介して有効になっている回路ブレーカーの動作を監視するためのコンソールを提供します。
上記は、Spring Cloud Netflixコンポーネントの簡単な紹介です。私はそれがすべての人の学習に役立つことを願っています、そして、私は誰もがwulin.comをもっとサポートすることを願っています。