routers

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CapabilityRouter

type CapabilityRouter struct{}

CapabilityRouter drops endpoints that do not support the request type. e.g. embedding requests only reach embedding-capable endpoints.

func (*CapabilityRouter) Name

func (r *CapabilityRouter) Name() string

func (*CapabilityRouter) Route

func (r *CapabilityRouter) Route(gctx *core.GatewayContext, endpoints []*core.Endpoint) []*core.Endpoint

type CircuitBreakerRouter

type CircuitBreakerRouter struct {
	// contains filtered or unexported fields
}

CircuitBreakerRouter drops endpoints in Open circuit state. Uses CircuitBreakerManager for service- and instance-level breakers. Two layers:

  • service (provider:model): whole service down
  • instance (endpoint ID): single instance down

func NewCircuitBreakerRouter

func NewCircuitBreakerRouter(cbManager *core.CircuitBreakerManager, enableActive bool, logger *zap.Logger) *CircuitBreakerRouter

NewCircuitBreakerRouter creates a CircuitBreakerRouter.

func (*CircuitBreakerRouter) Name

func (r *CircuitBreakerRouter) Name() string

func (*CircuitBreakerRouter) Route

func (r *CircuitBreakerRouter) Route(gctx *core.GatewayContext, endpoints []*core.Endpoint) []*core.Endpoint

type PriorityRouter

type PriorityRouter struct {
	// contains filtered or unexported fields
}

PriorityRouter keeps only highest-priority (lowest Priority value) endpoints. Must run after CircuitBreakerRouter. Keeps endpoints with the minimum Priority value. Ties stay as candidates for the load balancer.

func NewPriorityRouter

func NewPriorityRouter(logger *zap.Logger) *PriorityRouter

NewPriorityRouter creates a PriorityRouter.

func (*PriorityRouter) Name

func (r *PriorityRouter) Name() string

Name returns the router name.

func (*PriorityRouter) Route

func (r *PriorityRouter) Route(gctx *core.GatewayContext, endpoints []*core.Endpoint) []*core.Endpoint

Route filters to min-priority endpoints.

type TagRouter

type TagRouter struct {
	// contains filtered or unexported fields
}

TagRouter filters endpoints by tag/route policies.

func NewTagRouter

func NewTagRouter(logger *zap.Logger) *TagRouter

NewTagRouter creates a TagRouter.

func (*TagRouter) Name

func (r *TagRouter) Name() string

func (*TagRouter) Route

func (r *TagRouter) Route(gctx *core.GatewayContext, endpoints []*core.Endpoint) []*core.Endpoint

Route filters candidates by matching route policies.

type TenantEndpointRouter

type TenantEndpointRouter struct {
	// contains filtered or unexported fields
}

TenantEndpointRouter filters by tenant model endpoint whitelist.

func NewTenantEndpointRouter

func NewTenantEndpointRouter(rdb *redis.Client, logger *zap.Logger) *TenantEndpointRouter

func (*TenantEndpointRouter) Name

func (r *TenantEndpointRouter) Name() string

func (*TenantEndpointRouter) Route

func (r *TenantEndpointRouter) Route(gctx *core.GatewayContext, endpoints []*core.Endpoint) []*core.Endpoint

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL