{"id":14994237,"url":"https://github.com/rbiedrawa/spring-cloud-microservices-demo","last_synced_at":"2026-03-15T02:37:06.998Z","repository":{"id":162193118,"uuid":"349715163","full_name":"rbiedrawa/spring-cloud-microservices-demo","owner":"rbiedrawa","description":"Microservices using Netflix OSS and Spring Cloud framework.","archived":false,"fork":false,"pushed_at":"2022-01-31T02:10:12.000Z","size":1084,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-26T13:12:12.428Z","etag":null,"topics":["circuit-breaker","docker","docker-compose","eureka-server","hystrix","jib-gradle","microservices","microservices-architecture","netflix-oss","open-api-specification","service-discovery","spring-boot-admin2","spring-cloud","spring-cloud-config-server","spring-cloud-gateway","spring-cloud-netflix","spring-sleuth","spring-webflux","swagger-ui","zipkin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rbiedrawa.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-20T12:12:05.000Z","updated_at":"2021-12-27T12:30:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"cd78b19c-c421-4202-a711-2f2dfcaab7a8","html_url":"https://github.com/rbiedrawa/spring-cloud-microservices-demo","commit_stats":{"total_commits":27,"total_committers":2,"mean_commits":13.5,"dds":0.2962962962962963,"last_synced_commit":"11c340bbd5f4b6d10fb2104f7b9d513f226142d8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rbiedrawa/spring-cloud-microservices-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-cloud-microservices-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-cloud-microservices-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-cloud-microservices-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-cloud-microservices-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rbiedrawa","download_url":"https://codeload.github.com/rbiedrawa/spring-cloud-microservices-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-cloud-microservices-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30528278,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T00:42:01.247Z","status":"online","status_checked_at":"2026-03-15T02:00:07.485Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["circuit-breaker","docker","docker-compose","eureka-server","hystrix","jib-gradle","microservices","microservices-architecture","netflix-oss","open-api-specification","service-discovery","spring-boot-admin2","spring-cloud","spring-cloud-config-server","spring-cloud-gateway","spring-cloud-netflix","spring-sleuth","spring-webflux","swagger-ui","zipkin"],"created_at":"2024-09-24T16:01:19.788Z","updated_at":"2026-03-15T02:37:06.951Z","avatar_url":"https://github.com/rbiedrawa.png","language":"Java","readme":"# Spring Cloud Netflix OSS Microservices (Demo)\n\nMicroservices demo using Netflix OSS and Spring Cloud framework. \n\nPatterns, technologies demonstrated here: \n\n* Service registry and discovery: Eureka.\n* API gateway: Spring Cloud Gateway.\n* Client side load balancing: Ribbon.\n* Externalized configuration: Spring Cloud Config.\n* Circuit breaker: Hystrix, Hystrix Dashboard.\n* Distributed tracing: Sleuth, Zipkin.\n* Monitoring: Spring Boot Admin.\n* App Containerization: Docker, Docker Compose and Jib.\n\n## Table of Content\n\n- [Architecture](#architecture)\n- [Services](#services)\n- [Getting Started](#getting-started)\n  * [Installation](#installation)\n    + [Local](#local)\n    + [Docker](#docker)\n  * [Usage](#usage)\n- [References](#references)\n- [License](#license)\n\n## Architecture\n\n![architecture-diagram](./_docs/img/architecture.png)\n\n## Services\n\nThis demo consists of 7 different services:\n\n1. [config-server](./applications/config-server)\n2. [service-registry](./applications/service-registry)\n3. [admin-dashboard](./applications/admin-dashboard)\n4. [api-gateway](./applications/api-gateway)\n5. [hello-service](./applications/services/hello-service)\n6. [user-service](./applications/services/user-service)\n7. zipkin\n\n## Getting Started\n\n### Installation\n\n#### Local\n\nPlease refer to the individual readme files on instructions of how to run/build the services.\n\n#### Docker\n\n* You can build all docker images by running the `buildDockerImages.sh` on Mac/Linux systems or by going to each\n  individual directory and following installation guide.\n\n* Verify if all images exists, using `docker images | grep -w \"com.rbiedrawa.cloud.microservices\"` command.\n\n     ```\n    com.rbiedrawa.cloud.microservices/hello-service        0.0.1-SNAPSHOT\n    com.rbiedrawa.cloud.microservices/user-service         0.0.1-SNAPSHOT \n    com.rbiedrawa.cloud.microservices/service-registry     0.0.1-SNAPSHOT \n    com.rbiedrawa.cloud.microservices/admin-dashboard      0.0.1-SNAPSHOT \n    com.rbiedrawa.cloud.microservices/config-server        0.0.1-SNAPSHOT \n    com.rbiedrawa.cloud.microservices/api-gateway          0.0.1-SNAPSHOT \n    ```\n* Go to [docker](deployment/docker) subdirectory.\n\n* Start zipkin and [config-server](./applications/config-server):\n\n  `docker-compose up -d config-server zipkin`\n\n* Start [service-registry](./applications/service-registry) and [admin-dashboard](./applications/admin-dashboard):\n\n  `docker-compose up -d service-registry admin-dashboard`\n\n* Start [api-gateway](./applications/api-gateway) and\n  microservices ([hello-service](./applications/services/hello-service)\n  , [user-service](./applications/services/user-service))\n\n  `docker-compose up -d api-gateway hello-service user-service`\n\n* Check if all containers are running, using `docker-compose ps` command.\n\n   ```shell\n   # Sample output\n  \n        Name                    Command                  State                    Ports              \n  ---------------------------------------------------------------------------------------------------\n  admin-dashboard    java -cp /app/resources:/a ...   Up             0.0.0.0:8085-\u003e8085/tcp          \n  api-gateway        java -cp /app/resources:/a ...   Up             0.0.0.0:8082-\u003e8082/tcp          \n  config-server      java -cp /app/resources:/a ...   Up             0.0.0.0:8888-\u003e8888/tcp          \n  hello-service      java -cp /app/resources:/a ...   Up             0.0.0.0:8080-\u003e8080/tcp          \n  service-registry   java -cp /app/resources:/a ...   Up             0.0.0.0:8761-\u003e8761/tcp          \n  user-service       java -cp /app/resources:/a ...   Up             0.0.0.0:8081-\u003e8081/tcp          \n  zipkin             start-zipkin                     Up (healthy)   9410/tcp, 0.0.0.0:9411-\u003e9411/tcp\n   ```\n\n### Usage\n\n* Start services.\n\n* Generate some traffic using `./applications/api-gateway/simulate-api-gateway-traffic.sh ` shell script or by going to individual api gateway enpoints.\n\n* Visit Zipkin, spring boot admin, eureka and hystrix dashboard.\n\n* More details can be found in individual readme files (Usage section).\n\n## References\n\n* [Spring Cloud Gateway](https://spring.io/projects/spring-cloud-gateway)\n* [Spring Cloud Config](https://cloud.spring.io/spring-cloud-config)\n* [Spring Cloud Netflix](https://spring.io/projects/spring-cloud-netflix)\n* [Eureka](https://github.com/Netflix/eureka)\n* [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin)\n* [Hystrix - Circuit Breaker](https://github.com/Netflix/Hystrix)\n* [Hystrix Dashboard for Spring Boot Admin 2.x](https://github.com/MartinDevillers/spring-boot-admin-hystrix-dashboard)\n* [Hystrix Dashboard](https://github.com/Netflix-Skunkworks/hystrix-dashboard/)\n* [Zipkin](https://zipkin.io/)\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frbiedrawa%2Fspring-cloud-microservices-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frbiedrawa%2Fspring-cloud-microservices-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frbiedrawa%2Fspring-cloud-microservices-demo/lists"}