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) 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 ¶
NewTagRouter creates a TagRouter.
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