Documentation ¶
Index ¶
- Constants
- Variables
- func NewRoomSerivce(config Config) *roomService
- func StartProxy(tcpAddr string, rt *Runtime) error
- type Config
- type Discovery
- type K8sServiceDiscovery
- type LBSelector
- func (m *LBSelector) ConfirmEnpoint(endpoint, id string, checkIn bool) (err error)
- func (m *LBSelector) LoadStatus() map[string][]string
- func (m *LBSelector) ReleaseEndpoint(endpoint, id string)
- func (m *LBSelector) SelectEndpoint(id string) (string, bool, error)
- func (m *LBSelector) ServiceName() string
- type LoadBalance
- type MockServiceDiscovery
- type RedisRepository
- func (r *RedisRepository) DeleteString(key string)
- func (r *RedisRepository) GetSortedSetMemberCount(key string) int64
- func (r *RedisRepository) GetSortedSetMemberScore(key, member string) float64
- func (r *RedisRepository) GetSortedSetMembersWithScore(key string) map[string]float64
- func (r *RedisRepository) GetString(key string) (string, bool)
- func (r *RedisRepository) IncrSortedSetMemberScore(key, member string, incr float64) (float64, error)
- func (r *RedisRepository) Keys(pattern string) []string
- func (r *RedisRepository) RemoveSortedSetMember(key, member string)
- func (r *RedisRepository) RemoveSortedSetMemberScoreRange(key string, min, max float64)
- func (r *RedisRepository) SetSortedSetMemberScore(key, member string, score float64) error
- func (r *RedisRepository) SetString(key string, value string, expiration time.Duration) error
- type Repository
- type Runtime
- type Selector
Constants ¶
View Source
const ( RoomIdParam = "roomId" ServiceNameParam = "serviceName" )
Variables ¶
View Source
var ( UpdateEndpointsInterval = 30 * time.Second // room:endpoint关联关系,一段时间后自动删除 RoomExpireTime = time.Hour * 24 // k8s中service的名字 // todo:本地调试 DefaultServiceName = "DefaultServiceName" )
View Source
var ( ParseRequestError = errors.New("Parse request error") UseStdLib = false NotImplementFuncErr = errors.New("Not implement func") )
View Source
var (
NoAvailableServiceEndPointError = errors.New("No available service endpoint")
)
Functions ¶
func NewRoomSerivce ¶
func NewRoomSerivce(config Config) *roomService
func StartProxy ¶
Types ¶
type Discovery ¶
type Discovery interface { // endpoints 返回endpoints信息 Endpoints(serviceName string) ([]string, error) }
func NewSerivceDiscovery ¶
func NewSerivceDiscovery() Discovery
type K8sServiceDiscovery ¶
type K8sServiceDiscovery struct {
// contains filtered or unexported fields
}
type LBSelector ¶
type LBSelector struct {
// contains filtered or unexported fields
}
func (*LBSelector) ConfirmEnpoint ¶
func (m *LBSelector) ConfirmEnpoint(endpoint, id string, checkIn bool) (err error)
ConfirmEnpoint 确认
func (*LBSelector) LoadStatus ¶
func (m *LBSelector) LoadStatus() map[string][]string
func (*LBSelector) ReleaseEndpoint ¶
func (m *LBSelector) ReleaseEndpoint(endpoint, id string)
func (*LBSelector) SelectEndpoint ¶
func (m *LBSelector) SelectEndpoint(id string) (string, bool, error)
func (*LBSelector) ServiceName ¶
func (m *LBSelector) ServiceName() string
type LoadBalance ¶
type LoadBalance int
const ( // Random requests that connections are randomly distributed. Random LoadBalance = iota // RoundRobin requests that connections are distributed to a loop in a // round-robin fashion. RoundRobin // LeastConnections assigns the next accepted connection to the loop with // the least number of active connections. LeastConnections )
type MockServiceDiscovery ¶
type MockServiceDiscovery struct { }
type RedisRepository ¶
type RedisRepository struct {
// contains filtered or unexported fields
}
func (*RedisRepository) DeleteString ¶
func (r *RedisRepository) DeleteString(key string)
func (*RedisRepository) GetSortedSetMemberCount ¶
func (r *RedisRepository) GetSortedSetMemberCount(key string) int64
func (*RedisRepository) GetSortedSetMemberScore ¶
func (r *RedisRepository) GetSortedSetMemberScore(key, member string) float64
func (*RedisRepository) GetSortedSetMembersWithScore ¶
func (r *RedisRepository) GetSortedSetMembersWithScore(key string) map[string]float64
func (*RedisRepository) IncrSortedSetMemberScore ¶
func (r *RedisRepository) IncrSortedSetMemberScore(key, member string, incr float64) (float64, error)
IncrSortedSetMemberScore redis: ZINCRBY
func (*RedisRepository) Keys ¶
func (r *RedisRepository) Keys(pattern string) []string
func (*RedisRepository) RemoveSortedSetMember ¶
func (r *RedisRepository) RemoveSortedSetMember(key, member string)
RemoveSortedSetMember redis: ZREM
func (*RedisRepository) RemoveSortedSetMemberScoreRange ¶
func (r *RedisRepository) RemoveSortedSetMemberScoreRange(key string, min, max float64)
RemoveSortedSetScoreRange redis: ZREMRANGEBYSCORE
func (*RedisRepository) SetSortedSetMemberScore ¶
func (r *RedisRepository) SetSortedSetMemberScore(key, member string, score float64) error
SetSortedSet
type Repository ¶
type Repository interface { GetString(key string) (string, bool) SetString(key string, value string, expiration time.Duration) error DeleteString(key string) Keys(pattern string) []string GetSortedSetMemberCount(key string) int64 GetSortedSetMemberScore(key, member string) float64 SetSortedSetMemberScore(key, member string, score float64) error IncrSortedSetMemberScore(key, member string, incr float64) (float64, error) RemoveSortedSetMember(key, member string) RemoveSortedSetMemberScoreRange(key string, min, max float64) GetSortedSetMembersWithScore(key string) map[string]float64 }
储存room和server的信息
func NewRedisRepository ¶
func NewRedisRepository(conf Config) Repository
type Runtime ¶
func NewRuntime ¶
func NewRuntime() *Runtime
type Selector ¶
type Selector interface { ServiceName() string // SelectEndpoint 根据标识,获得对应endpoints SelectEndpoint(id string) (endpoint string, newSelect bool, err error) // 确认使用Endpoint,向Redis注册 ConfirmEnpoint(endpoint, id string, checkIn bool) error ReleaseEndpoint(endpoint, id string) // 查询房间状态:endpoint: [id, ...] LoadStatus() map[string][]string }
selector select upstream pod
func NewSelector ¶
Click to show internal directories.
Click to hide internal directories.