Awesome
Distributed version of the Spring PetClinic Sample Application built with Spring Cloud
Based on the original Spring Petclinic Microservices repository and the Spring Petclinic Microservices CLoud Version.
This microservices branch was initially derived from AngularJS version to demonstrate how to split sample Spring application into microservices. To achieve that goal, we use Spring Cloud Gateway, Spring Cloud Circuit Breaker, Spring Cloud Config, Spring Cloud Sleuth, Resilience4j, Micrometer and the Eureka Service Discovery from the Spring Cloud Netflix technology stack.
Starting services locally
Every microservice is a Spring Boot application and can be started locally.
Please note that supporting services (Config and Discovery Server) must be started before any other application (Customers, Vets, Visits and API).
Startup of Admin server is optional.
Starting Services Locally without Docker
Check the local.md file in the doc folder
Starting Services Locally with Docker
Check the local-docker.md file in the doc folder
Starting Services Locally with Docker & Docker Compose
Check the local-compose.md file in the doc folder
Starting Services Locally with Kubernetes (Minikube)
Check the local-k8s.md file in the doc folder
Database configuration
Check the database.md file in the doc folder
Load Testing
A JMeter load testing script is available to stress the application and generate metrics: petclinic_test_plan.jmx
Metrics
Check the metrics.md file in the doc folder
Tracing
Check the tracing.md file in the doc folder
Logs
Check the logs.md file in the doc folder
Chaos
Check the chaos.md file in the doc folder
References
- https://github.com/spring-petclinic/spring-petclinic-microservices
- https://github.com/spring-petclinic/spring-petclinic-rest
- https://github.com/gantsign/spring-petclinic-openapi/tree/master/src/main/java/org/springframework/samples/petclinic/web/api
Contributing
For a complete guide to contributing to the project, see the Contribution Guide.
We welcome contributions of any kind including documentation, organization, tutorials, blog posts, bug reports, issues, feature requests, feature implementations, pull requests, answering questions on the forum, helping to manage issues, etc.
The project community and maintainers are very active and helpful, and the project benefits greatly from this activity.
Reporting Issues
If you believe you have found a defect in the project or its documentation, use the repository issue tracker to report the problem to the project maintainers.
If you're not sure if it's a bug or not, start by asking in the discussion forum. When reporting the issue, please provide the version.
Submitting Patches
The project welcomes all contributors and contributions regardless of skill or experience level.
If you are interested in helping with the project, we will help you with your contribution.
We want to create the best possible tool for our development teams and the best contribution experience for our developers, we have a set of guidelines which ensure that all contributions are acceptable.
The guidelines are not intended as a filter or barrier to participation. If you are unfamiliar with the contribution process, the team will help you and teach you how to bring your contribution in accordance with the guidelines.
For a complete guide to contributing, see the Contribution Guide.
Code of Conduct
See the code-of-conduct.md file
License
See the LICENSE file