Surfing the internet, we come across resources that we might need for later use or maybe store them for a current project we are working on. This is where project Urlink comes in. It helps the user create multiple collections which can store multiple URLs with description for later access.
- The project is created using Spring Boot, a framework for creating back-end and microservices using Java, with - MySQL as database.
- The project is deployed to Azure Spring Cloud and connected to Azure MySQL single server database
- The code is divided into 5 modules and 3 micro-services, 1 cloud-gateway, 1 shared module containing models, - DTOs etc.
- All microservice discover each other using Eureka service registry and internally requests are load balanced - going from one micro-service to another.
- All microservices perform database operations using Spring Data JPA library.
- All micro-service implemented according to Open-API specification and documented using swagger.
- All database models are abstracted from the user end using Data Transfer Objects ( DTOs )
- You can send HTTP requests to individual micro-services but to make our infrastructure more resilient, we - implemented cloud gateway and circuit breaker for all requests to traverse through it and in-case of any - failure, handle the fallback and inform the user about the same.
- Configurations are loaded into the system using the config server using git and azure service binding.
- Service Registry and Cloud Config server are integrated and fully-managed by Azure spring cloud.
- Modules are packaged in .jar files and deployed to azure spring cloud from azure devops build pipeline
- For distributed tracing and logging, we added zipkin and sleuth libraries which integrate with the AppInsights dashboard for Azure
- Code : https://github.com/dev117uday/azure-dev-hackathon
- Azure devops : https://dev.azure.com/udayyadav117/azure-dev-hackathon/_build
Youtube video : https://www.youtube.com/watch?v=QKdbMSZLhJY
ignore background noise 😬
- User Service
- Collection Service
- Link Service
- refer the swagger documentation to go through cloud-gateway. Ex : https://azure-dev-hackathon-cloud-gateway.azuremicroservices.io/api/v1/user/1 goes to cloud-gateway and then to user service
- if getting service down, refresh and few times