| == Resilience4j Example |
| |
| === Introduction |
| |
| This example shows how to use Camel with Resilience4j EIP as circuit breaker |
| in Camel routes |
| |
| The example includes four sub maven modules that implement |
| |
| * client (spring boot) |
| * client2 (camel main) |
| * service1 |
| * service2 |
| |
| Where client -> service1 client -> service2 (fallback) |
| |
| === Configuration |
| |
| Service1 is configured in the |
| `+src/main/java/sample/camel/Service1Application.java+` source code. |
| Service2 is configured in the |
| `+src/main/resources/application.properties+` properties file. |
| |
| === Build |
| |
| You will need to compile this example first: |
| |
| [source,sh] |
| ---- |
| $ mvn compile |
| ---- |
| |
| === Run the example |
| |
| Then using three different shells and run service1 and service2 before |
| the client. |
| |
| [source,sh] |
| ---- |
| $ cd service1 |
| $ mvn compile spring-boot:run |
| ---- |
| |
| When service1 is ready then start service2 |
| |
| [source,sh] |
| ---- |
| $ cd service2 |
| $ mvn compile camel:run |
| ---- |
| |
| And then start the client that calls service1 every second. |
| |
| We have provided two clients, one is using Spring Boot, the other Camel Main. |
| You can run either one of them. |
| |
| To use Spring Boot |
| |
| [source,sh] |
| ---- |
| $ cd client |
| $ mvn compile spring-boot:run |
| ---- |
| |
| Or to use Camel Main |
| |
| [source,sh] |
| ---- |
| $ cd client2 |
| $ mvn compile camel:run |
| ---- |
| |
| You can then stop service1 and see that the client should fallback to |
| call service2 in the Resilience EIP circuit breaker. And then start service |
| 1 again and see the Resilience EIP go back to normal. |
| |
| |
| === Help and contributions |
| |
| If you hit any problem using Camel or have some feedback, then please |
| https://camel.apache.org/support.html[let us know]. |
| |
| We also love contributors, so |
| https://camel.apache.org/contributing.html[get involved] :-) |
| |
| The Camel riders! |