Home

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

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