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)
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.
Then using three different shells and run service1 and service2 before the client.
$ cd service1
$ mvn compile spring-boot:run
When service1 is ready then start service2
$ 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
$ cd client
$ mvn compile spring-boot:run
Or to use Camel Main
$ 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.
If you hit any problem using Camel or have some feedback, then please let us know.
We also love contributors, so get involved :-)
The Camel riders!