Documentation ¶
Overview ¶
Example ¶
ctx := context.TODO() db, err := ydb.Open(ctx, "grpcs://localhost:2135/local") if err != nil { fmt.Printf("failed to connect: %v", err) return } defer db.Close(ctx) // cleanup resources // create node err = db.Coordination().CreateNode(ctx, "/local/ratelimiter_test", coordination.NodeConfig{ Path: "", SelfCheckPeriodMillis: 1000, SessionGracePeriodMillis: 1000, ReadConsistencyMode: coordination.ConsistencyModeRelaxed, AttachConsistencyMode: coordination.ConsistencyModeRelaxed, RatelimiterCountersMode: coordination.RatelimiterCountersModeDetailed, }) if err != nil { fmt.Printf("failed to create node: %v", err) return } defer func() { // cleanup node err = db.Coordination().DropNode(ctx, "/local/ratelimiter_test") if err != nil { fmt.Printf("failed to drop node: %v", err) } }() // create resource err = db.Ratelimiter().CreateResource(ctx, "/local/ratelimiter_test", ratelimiter.Resource{ ResourcePath: "test_resource", HierarchicalDrr: ratelimiter.HierarchicalDrrSettings{ MaxUnitsPerSecond: 1, MaxBurstSizeCoefficient: 2, }, }) if err != nil { fmt.Printf("failed to create resource: %v", err) } defer func() { // cleanup resource err = db.Ratelimiter().DropResource(ctx, "/local/ratelimiter_test", "test_resource") if err != nil { fmt.Printf("failed to drop resource: %v", err) } }() // alter resource err = db.Ratelimiter().AlterResource(ctx, "/local/ratelimiter_test", ratelimiter.Resource{ ResourcePath: "test_resource", HierarchicalDrr: ratelimiter.HierarchicalDrrSettings{ MaxUnitsPerSecond: 3, MaxBurstSizeCoefficient: 4, }, }) if err != nil { fmt.Printf("failed to alter resource: %v", err) } // acquire resource amount 1 err = db.Ratelimiter().AcquireResource( ctx, "/local/ratelimiter_test", "test_resource", 1, ratelimiter.WithAcquire(), ) if err != nil { fmt.Printf("failed to acquire resource: %v", err) }
Output:
Index ¶
- func WithAcquire() options.AcquireOption
- func WithOperationCancelAfter(operationCancelAfter time.Duration) options.AcquireOption
- func WithOperationTimeout(operationTimeout time.Duration) options.AcquireOption
- func WithReport() options.AcquireOption
- type AcquireError
- type Client
- type HierarchicalDrrSettings
- type Resource
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithAcquire ¶ added in v3.11.0
func WithAcquire() options.AcquireOption
func WithOperationCancelAfter ¶ added in v3.11.0
func WithOperationCancelAfter(operationCancelAfter time.Duration) options.AcquireOption
func WithOperationTimeout ¶ added in v3.11.0
func WithOperationTimeout(operationTimeout time.Duration) options.AcquireOption
func WithReport ¶ added in v3.11.0
func WithReport() options.AcquireOption
Types ¶
type AcquireError ¶ added in v3.11.0
type Client ¶ added in v3.7.0
type Client interface { CreateResource( ctx context.Context, coordinationNodePath string, resource Resource, ) (err error) AlterResource( ctx context.Context, coordinationNodePath string, resource Resource, ) (err error) DropResource( ctx context.Context, coordinationNodePath string, resourcePath string, ) (err error) ListResource( ctx context.Context, coordinationNodePath string, resourcePath string, recursive bool, ) (_ []string, err error) DescribeResource( ctx context.Context, coordinationNodePath string, resourcePath string, ) (_ *Resource, err error) AcquireResource( ctx context.Context, coordinationNodePath string, resourcePath string, amount uint64, opts ...options.AcquireOption, ) (err error) }
type HierarchicalDrrSettings ¶
type Resource ¶
type Resource struct { ResourcePath string HierarchicalDrr HierarchicalDrrSettings }
Click to show internal directories.
Click to hide internal directories.