Expected Behavior / New Feature
The polling of discovery services is not specific to one type of discovery service. Therefore, polling management should not be specific to a service but generic.
So here we want to propose:
- A service manager that manages the list of microservice types (clusters)
- An instance manager that manages the list of possible destinations
Obtaining destination addresses is specific to each discovery service and must be implemented accordingly.
Actual Behavior / Motivation for New Feature
The polling of discovery services at long intervals is motivated by performance problems. Obtaining the list of services for each request can have a negative impact on gateway performance.
Polling is already implemented for Consul, but also for Kubernetes. Unfortunately, the two providers are implemented in different ways.
So the aim here is to propose a generic implementation of polling so that it can be offered for any type of discovery service (eg. Eureka).
Specifications
- Version: latest, 19.x & .NET 7
Expected Behavior / New Feature
The polling of discovery services is not specific to one type of discovery service. Therefore, polling management should not be specific to a service but generic.
So here we want to propose:
Obtaining destination addresses is specific to each discovery service and must be implemented accordingly.
Actual Behavior / Motivation for New Feature
The polling of discovery services at long intervals is motivated by performance problems. Obtaining the list of services for each request can have a negative impact on gateway performance.
Polling is already implemented for Consul, but also for Kubernetes. Unfortunately, the two providers are implemented in different ways.
So the aim here is to propose a generic implementation of polling so that it can be offered for any type of discovery service (eg. Eureka).
Specifications