There is a couple of microservices which implemented e-commerce modules over Payment, Product, Basket, Discount, Ordering and Identity microservices with NoSQL (MongoDB, Redis) and Relational databases (Sql Server) with communicating over RabbitMQ Event Driven Communication and using Ocelot API Gateway.
Deploying .Net Microservices into Kubernetes and moving deployments to the cloud Azure Kubernetes Services (AKS) with using Azure Container Registry (ACR)
- Implement Identity Server - Duenede Server
- Implement ASP.Net Identity
- SqlServer database
- Implement API Gateways with Ocelot
- Implement Authentication with JWT Bearer
- Sample microservices/containers to reroute through the API Gateways
- REST API principles, CRUD operations
- Implement Authentication with JWT Bearer
- Consuming RabbitMQ Messages
- Swagger Open API implementation
- SqlServer database
- MongoDB database connection and containerization
- REST API principles, CRUD operations
- Implement Authentication with JWT Bearer
- Consuming RabbitMQ Messages
- Swagger Open API implementation
- ASP.NET Grpc Server applicatios
- Exposing Grpc Services with creating Protobuf messages
- SqlServer database
- Redis database connection and containerization
- REST API principles, CRUD operations
- Implement Authentication with JWT Bearer
- Consuming RabbitMQ Messages
- Swagger Open API implementation
- REST API principles
- Implement Clean Architecture
- Implement Authentication with JWT Bearer
- Consuming RabbitMQ Messages
- Swagger Open API implementation
- SqlServer database
- Sync inter-service gRPC Communication
- Async Microservices Communication with RabbitMQ Message-Broker Service
- Using RabbitMQ Publish/Subscribe Topic Exchange Model
- Implement Authentication with OpenIdConnect
- Call Ocelot APIs with HttpClientFactory and RestClient
- Containerization of microservices
- Containerization of databases
- Override Environment variables
docker-compose up --build
You can launch microservices as below urls:
you can replace Your IP Address in .env file with host.docker.internal
-
Identity Service -> http://host.docker.internal:7018
-
API Gateway Admin -> http://host.docker.internal:11023
-
API Gateway Web -> http://host.docker.internal:10023
-
Product API -> http://host.docker.internal:11002/swagger/index.html
-
Ordering API -> http://host.docker.internal:7002/swagger/index.html
-
Discount API -> http://host.docker.internal:8003/swagger/index.html
-
Basket API -> http://host.docker.internal:6002/swagger/index.html
-
Payment API -> http://host.docker.internal:10002/swagger/index.html
-
Rabbit Management Dashboard -> http://host.docker.internal:15672 -- guest/guest
-
Web Frontend -> http://host.docker.internal:44328
-
Admin Frontend -> http://host.docker.internal:7298
kubectl apply /k8s
you can find Port or NodePort of services in k8s yaml files
- Mohammad Khalesi - Mkhalesi