1.3. ブースタープロジェクトのビルド
以下の手順では、Fuse on Spring Boot で Circuit Breaker ブースターをビルドする方法を説明します。
前提条件
- Red Hat Developer Portal からブースタープロジェクトの生成およびダウンロードが完了している。
- サポートされるバージョンの Java Developer Kit (JDK) を持っている。詳細は Red Hat Fuse でサポートされる設定 を参照してください。
- Apache Maven 3.3.x 以上が必要です。
手順
シェルプロンプトを開き、Maven を使用してコマンドラインからプロジェクトをビルドします。
cd fuse-circuit-breaker
cd fuse-circuit-breaker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mvn clean package
mvn clean package
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Maven によってプロジェクトがビルドされると、Build Success というメッセージが表示されます。
新しいシェルプロンプトを開き、以下のように name サービスを起動します。
cd name-service
cd name-service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mvn spring-boot:run -DskipTests -Dserver.port=8081
mvn spring-boot:run -DskipTests -Dserver.port=8081
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Spring Boot が起動すると、以下のような出力が表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいシェルプロンプトを開き、以下のように greetings サービスを起動します。
cd greetings-service
cd greetings-service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mvn spring-boot:run -DskipTests
mvn spring-boot:run -DskipTests
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Spring Boot が起動すると、以下のような出力が表示されます。
... 2019-05-06 20:22:19.051 INFO 9729 --- [ main] o.a.c.c.s.CamelHttpTransportServlet : Initialized CamelHttpTransportServlet[name=CamelServlet, contextPath=] 2019-05-06 20:22:19.115 INFO 9729 --- [ main] b.c.e.u.UndertowEmbeddedServletContainer : Undertow started on port(s) 8080 (http) 2019-05-06 20:22:19.123 INFO 9729 --- [ main] com.redhat.fuse.boosters.cb.Application : Started Application in 7.68 seconds (JVM running for 12.66)
... 2019-05-06 20:22:19.051 INFO 9729 --- [ main] o.a.c.c.s.CamelHttpTransportServlet : Initialized CamelHttpTransportServlet[name=CamelServlet, contextPath=] 2019-05-06 20:22:19.115 INFO 9729 --- [ main] b.c.e.u.UndertowEmbeddedServletContainer : Undertow started on port(s) 8080 (http) 2019-05-06 20:22:19.123 INFO 9729 --- [ main] com.redhat.fuse.boosters.cb.Application : Started Application in 7.68 seconds (JVM running for 12.66)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow greetings サービスは
http://localhost:8080/camel/greetings
URL で REST エンドポイントを公開します。web ブラウザーで URL を開くか、別のシェルプロンプトで以下の
curl
コマンドを入力して、REST エンドポイントを呼び出します。curl http://localhost:8080/camel/greetings
curl http://localhost:8080/camel/greetings
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 応答は次のとおりです。
{"greetings":"Hello, Jacopo"}
{"greetings":"Hello, Jacopo"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Camel Hystrix によって提供されるサーキットブレーカー機能を実証するために、name サービスが実行されているシェルプロンプトウインドウで Ctrl-C を入力し、バックエンド name サービスを強制終了します。
これで name サービスが利用できなくなるため、呼び出されたときに greetings サービスがハングしないよう、サーキットブレーカーが作動します。
web ブラウザーで
http://localhost:8080/camel/greetings
を開くか、別のシェルプロンプトウインドウに以下のcurl
コマンドを入力して、greetings REST エンドポイントを呼び出します。curl http://localhost:8080/camel/greetings
curl http://localhost:8080/camel/greetings
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 応答は次のとおりです。
{"greetings":"Hello, default fallback"}
{"greetings":"Hello, default fallback"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow greetings サービスが実行されているウインドウで、ログに以下のメッセージシーケンスが表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
この例に関する詳細は、
greetings-service
の実行中に http://localhost:8080/ で Circuit Breaker - Red Hat Fuse ページを開いてください。このページには、サーキットブレーカーの状態を監視する Hystrix ダッシュボードへのリンクが含まれます。