Internal gateway
Overview
The Internal Gateway is a simplified Zuul service which provides an easy integration of services running different namespaces of a multistate instance, the clients need not know about all the details of microservices and its namespace in the K8s setup.
Pre-requisites
Before you proceed with the documentation, make sure the following pre-requisites are met -
Java 8
Zuul gateway service
Key Functionalities
Provides an easier API interface between services running in different tenants(namespaces) where direct access between microservices is blocked by default.
Allows refactoring microservices independently without forcing the clients to refactor integrating logic with other tenants.
Zuul Components:
Route filter - single route filter enables the routing based on tenatId from the HTTP header of the incoming requests.
Configuration
Routing Property
For each service, below mentioned property has to be added in internal-gateway.json
{
"/egov-mdms-service/.*": {
"in.statea": "http://egov-mdms-service.statea:8080",
"in.stateb": "http://egov-mdms-service.stateb:8080",
"in": "http://egov-mdms-service:8080"
},
"/pt-calculator-v2/.*": {
"in.statea": "http://pt-calculator-v2.statea:8080",
"in.stateb": "http://pt-calculator-v2.stateb:8080",
"in": "http://pt-calculator-v2.digit:8080"
},
"/property-services/.*": {
"in.stateb": "http://property-services.digit:8080",
"in.statea": "http://property-services.digit:8080"
},
"/billing-service/.*": {
"in.stateb": "http://billing-service.digit:8080",
"in.statea": "http://billing-service.digit:8080"
},
"/egov-searcher/.*": {
"in.statea": "http://egov-searcher.statea:8080",
"in.stateb": "http://egov-searcher.stateb:8080"
},
"/dashboard-analytics/.*": {
"in.statea": "http://dashboard-analytics.statea:8080",
"in.stateb": "http://dashboard-analytics.stateb:8080"
}
}
Sequence Diagram :