Documentation
¶
Index ¶
- Constants
- type ClusterNodeManagerOptions
- type LocalSiteManager
- type RedisReplicaManagerSite
- type RedisReplicaManagerSiteSlot
- type RedisReplicaManagerUpdate
- type RedisReplicaManagerUpdateFunc
- type ReplicaBalancer
- type ReplicaBalancerOptions
- type ReplicaManagerClient
- type ReplicaManagerClientProviderFunc
- type ReplicaManagerClientProviderOptions
- type ReplicaManagerOptions
- type RouteTableEntry
Constants ¶
View Source
const ( ROLE_PRIMARY = "primary" ROLE_SECONDARY = "secondary" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClusterNodeManagerOptions ¶
type ClusterNodeManagerOptions struct { ReplicaManagerClient ReplicaManagerClient ReplicaBalancer ReplicaBalancer RefreshInterval time.Duration NotifyMissingSlotsHandler func(ctx context.Context, manager LocalSiteManager, slots *[]uint32) error NotifyRedundantSlotsHandler func(ctx context.Context, manager LocalSiteManager, slots *[]uint32) error NotifyPrimarySlotsChangedHandler func(ctx context.Context, manager LocalSiteManager) error }
func (*ClusterNodeManagerOptions) Validate ¶
func (o *ClusterNodeManagerOptions) Validate() error
type LocalSiteManager ¶ added in v1.0.0
type LocalSiteManager interface { RequestAddSlot(ctx context.Context, slotId uint32) (bool, error) RequestRemoveSlot(ctx context.Context, slotId uint32) (bool, error) RemoveFailedSlot(ctx context.Context, slotId uint32) error GetSlotIdentifiers(ctx context.Context) (*[]uint32, error) GetSlotForObject(objectId string) uint32 GetSlotRouteTable(ctx context.Context, slotId uint32) *[]*RouteTableEntry GetSlotPrimarySiteRoute(ctx context.Context, slotId uint32) *RouteTableEntry IsLocalSitePrimaryForSlot(ctx context.Context, slotId uint32) (bool, error) GetAllSlotsLocalSiteIsPrimaryFor(ctx context.Context) (*[]uint32, error) Close() error }
func NewLocalSiteManager ¶ added in v1.0.0
func NewLocalSiteManager(ctx context.Context, opts *ClusterNodeManagerOptions) (LocalSiteManager, error)
type RedisReplicaManagerSite ¶
type RedisReplicaManagerSite struct {
SiteID string
}
type RedisReplicaManagerUpdateFunc ¶
type RedisReplicaManagerUpdateFunc func(ctx context.Context, update *RedisReplicaManagerUpdate) error
type ReplicaBalancer ¶
type ReplicaBalancer interface { AddSite(ctx context.Context, siteId string) error RemoveSite(ctx context.Context, siteId string) error GetSites() *[]string GetTargetSlotsForSite(ctx context.Context, siteId string) *[]uint32 GetSlotSites(ctx context.Context, slotId uint32) *[]string GetTotalSitesCount() uint32 GetTotalSlotsCount() uint32 GetSlotReplicaCount() uint32 GetSlotForObject(objectId string) uint32 }
func NewReplicaBalancer ¶
func NewReplicaBalancer(ctx context.Context, opts *ReplicaBalancerOptions) (ReplicaBalancer, error)
type ReplicaBalancerOptions ¶
type ReplicaBalancerOptions struct { TotalSlotsCount int SlotReplicaCount int MinimumSitesCount int }
func (*ReplicaBalancerOptions) Validate ¶
func (o *ReplicaBalancerOptions) Validate() error
type ReplicaManagerClient ¶
type ReplicaManagerClient interface { AddSlot(ctx context.Context, slotId string) error RemoveSlot(ctx context.Context, slotId string, minReplicaCount int, reason string) error RemoveFailedSlot(ctx context.Context, slotId string, minReplicaCount int) error GetSlot(ctx context.Context, slotId string) (*RedisReplicaManagerSiteSlot, error) GetSlots(ctx context.Context) (*[]*RedisReplicaManagerSiteSlot, error) GetSlotsRouting(ctx context.Context) (*[]*RedisReplicaManagerSiteSlot, error) GetSiteID() string GetLiveSites(ctx context.Context) (*[]*RedisReplicaManagerSite, error) Channel() <-chan *RedisReplicaManagerUpdate Close() error }
func NewRedisReplicaManagerClient ¶
func NewRedisReplicaManagerClient(ctx context.Context, options *ReplicaManagerOptions) (ReplicaManagerClient, error)
type ReplicaManagerClientProviderFunc ¶
type ReplicaManagerClientProviderFunc func(ctx context.Context, opts *ReplicaManagerClientProviderOptions) (ReplicaManagerClient, error)
type ReplicaManagerClientProviderOptions ¶
type ReplicaManagerClientProviderOptions struct { SiteID string UpdateNotificationHandler RedisReplicaManagerUpdateFunc }
type ReplicaManagerOptions ¶
type ReplicaManagerOptions struct { RedisOptions *redis.Options SiteID string SiteTimeout time.Duration RedisKeyPrefix string UpdateNotificationHandler RedisReplicaManagerUpdateFunc ManualHeartbeat bool }
func (*ReplicaManagerOptions) Validate ¶
func (o *ReplicaManagerOptions) Validate() error
type RouteTableEntry ¶
Click to show internal directories.
Click to hide internal directories.