Documentation
¶
Overview ¶
Package routing includes utilities for routing and assignments. See https://serviceweaver.dev/docs.html#routing for more information on routing.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EqualSlices ¶
func EqualSlices(replicas []string) *protos.Assignment
EqualSlices returns an assignment with slices of roughly equal size. Replicas are assigned to slices in a round robin fashion. The returned assignment has a version of 0.
func FormatAssignment ¶
func FormatAssignment(a *protos.Assignment) string
FormatAssignment pretty formats the provided assignment.
Example ¶
assignment := &protos.Assignment{
Slices: []*protos.Assignment_Slice{
{Start: 0x0, Replicas: []string{"a", "b"}},
{Start: 0x3333333333333333, Replicas: []string{"a", "c"}},
{Start: 0x6666666666666666, Replicas: []string{"b", "c"}},
{Start: 0x9999999999999999, Replicas: []string{"a", "b", "c"}},
},
Version: 42,
}
fmt.Println(FormatAssignment(assignment))
Output: Assignment Version 42 [0x0000000000000000, 0x3333333333333333): [a b] [0x3333333333333333, 0x6666666666666666): [a c] [0x6666666666666666, 0x9999999999999999): [b c] [0x9999999999999999, 0xffffffffffffffff]: [a b c]
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.