Skip to content

Generic polling mechanism for discovery services (Consul, Eureka...) #1708

Description

@ggnaegi

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Service DiscoveryOcelot feature: Service Discoveryneeds feedbackIssue is waiting on feedback before acceptanceproposalProposal for a new functionality in Ocelot

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions