...
Package cache
Overview ▹
Index ▹
type Cache ¶
Cache collects the most recent set of endpoints from a service discovery system via a subscriber, and makes them available to consumers. Cache is meant to be embedded inside of a concrete subscriber, and can serve Service invocations directly.
type Cache struct {
// contains filtered or unexported fields
}
func New ¶
func New(factory sd.Factory, logger log.Logger) *Cache
New returns a new, empty endpoint cache.
func (*Cache) Endpoints ¶
func (c *Cache) Endpoints() []endpoint.Endpoint
Endpoints yields the current set of (presumably identical) endpoints, ordered lexicographically by the corresponding instance string.
func (*Cache) Update ¶
func (c *Cache) Update(instances []string)
Update should be invoked by clients with a complete set of current instance strings whenever that set changes. The cache manufactures new endpoints via the factory, closes old endpoints when they disappear, and persists existing endpoints if they survive through an update.