Documentation ¶
Index ¶
- Variables
- func ConvertDuration(d *duration.Duration) (time.Duration, error)
- func ConvertServerErrorToRpcError(code uint32) model.ErrCode
- func GenServicesRevision(services []*namingpb.Service) string
- func GetEventType(respType namingpb.DiscoverResponse_DiscoverResponseType) model.EventType
- func GetMaxValidDuration(rule *namingpb.Rule) (time.Duration, error)
- func GetProtoRequestType(event model.EventType) namingpb.DiscoverRequest_DiscoverRequestType
- func NewRoutingRuleInProto(resp *namingpb.DiscoverResponse) model.ServiceRule
- func ProtoDurationToMS(dur *duration.Duration) int64
- func ValidateMessage(eventKey *model.ServiceEventKey, message interface{}) error
- type DiscoverError
- type InstSlice
- type InstanceInProto
- func (i *InstanceInProto) GetActiveDetectStatus() model.ActiveDetectStatus
- func (i *InstanceInProto) GetCampus() string
- func (i *InstanceInProto) GetCircuitBreakerStatus() model.CircuitBreakerStatus
- func (i *InstanceInProto) GetExtendedData(pluginIndex int32) interface{}
- func (i *InstanceInProto) GetHost() string
- func (i *InstanceInProto) GetIDC() string
- func (i *InstanceInProto) GetId() string
- func (i *InstanceInProto) GetInstanceKey() model.InstanceKey
- func (i *InstanceInProto) GetInstanceLocalValue() local.InstanceLocalValue
- func (i *InstanceInProto) GetLogicSet() string
- func (i *InstanceInProto) GetNamespace() string
- func (i *InstanceInProto) GetPort() uint32
- func (i *InstanceInProto) GetPriority() uint32
- func (i *InstanceInProto) GetProtocol() string
- func (i *InstanceInProto) GetRegion() string
- func (i *InstanceInProto) GetRevision() string
- func (i *InstanceInProto) GetService() string
- func (i *InstanceInProto) GetSliceWindows(pluginIndex int32) []*metric.SliceWindow
- func (i *InstanceInProto) GetVersion() string
- func (i *InstanceInProto) GetVpcId() string
- func (i *InstanceInProto) GetWeight() int
- func (i *InstanceInProto) GetZone() string
- func (i *InstanceInProto) IsEnableHealthCheck() bool
- func (i *InstanceInProto) IsHealthy() bool
- func (i *InstanceInProto) IsIsolated() bool
- func (i *InstanceInProto) SetExtendedData(pluginIndex int32, data interface{})
- func (i *InstanceInProto) SingleInstances() []model.Instance
- type MeshConfigProto
- type MeshProto
- type RateLimitRuleCache
- type RateLimitingAssistant
- type RoutingAssistant
- type ServiceInstancesInProto
- func (s *ServiceInstancesInProto) GetGetTotalWeight() int
- func (s *ServiceInstancesInProto) GetInstance(instId string) model.Instance
- func (s *ServiceInstancesInProto) GetInstanceLocalValue(instId string) local.InstanceLocalValue
- func (s *ServiceInstancesInProto) GetInstances() []model.Instance
- func (s *ServiceInstancesInProto) GetMetadata() map[string]string
- func (s *ServiceInstancesInProto) GetNamespace() string
- func (s *ServiceInstancesInProto) GetRevision() string
- func (s *ServiceInstancesInProto) GetService() string
- func (s *ServiceInstancesInProto) GetServiceClusters() model.ServiceClusters
- func (s *ServiceInstancesInProto) GetServiceLoadbalancer() loadbalancer.LoadBalancer
- func (s *ServiceInstancesInProto) GetServiceLocalValue() local.ServiceLocalValue
- func (s *ServiceInstancesInProto) GetServiceRouterChain() *servicerouter.RouterChain
- func (s *ServiceInstancesInProto) GetSvcIDSet() model.HashSet
- func (s *ServiceInstancesInProto) GetTotalWeight() int
- func (s *ServiceInstancesInProto) GetType() model.EventType
- func (s *ServiceInstancesInProto) IsCacheLoaded() bool
- func (s *ServiceInstancesInProto) IsInitialized() bool
- func (s *ServiceInstancesInProto) ReloadServiceClusters()
- func (s *ServiceInstancesInProto) SetInitialized(isInitialized bool)
- type ServiceRuleAssistant
- type ServiceRuleInProto
- func (s *ServiceRuleInProto) GetNamespace() string
- func (s *ServiceRuleInProto) GetRevision() string
- func (s *ServiceRuleInProto) GetRuleCache() model.RuleCache
- func (s *ServiceRuleInProto) GetService() string
- func (s *ServiceRuleInProto) GetType() model.EventType
- func (s *ServiceRuleInProto) GetValidateError() error
- func (s *ServiceRuleInProto) GetValue() interface{}
- func (s *ServiceRuleInProto) IsCacheLoaded() bool
- func (s *ServiceRuleInProto) IsInitialized() bool
- func (s *ServiceRuleInProto) ValidateAndBuildCache() error
- type ServicesProto
- type SvcPluginValues
Constants ¶
This section is empty.
Variables ¶
var ServerErrorCodeTypeMap = map[uint32]model.ErrCode{ 200: model.ErrCodeSuccess, 400: model.ErrCodeInvalidRequest, 401: model.ErrCodeUnauthorized, 403: model.ErrCodeRequestLimit, 404: model.ErrCodeCmdbNotFound, 500: model.ErrCodeServerError, }
获取server错误码类型的map
Functions ¶
func ConvertDuration ¶
convertDuration converts to golang duration and logs errors
func ConvertServerErrorToRpcError ¶
将server返回码转化为服务调用的返回码
func GenServicesRevision ¶
func GetEventType ¶
func GetEventType(respType namingpb.DiscoverResponse_DiscoverResponseType) model.EventType
通过应答类型获取事件类型
func GetMaxValidDuration ¶
获取最大校验周期
func GetProtoRequestType ¶
func GetProtoRequestType(event model.EventType) namingpb.DiscoverRequest_DiscoverRequestType
通过事件类型获取请求类型
func NewRoutingRuleInProto ¶
func NewRoutingRuleInProto(resp *namingpb.DiscoverResponse) model.ServiceRule
兼容接口, trpc-go依赖项
func ValidateMessage ¶
func ValidateMessage(eventKey *model.ServiceEventKey, message interface{}) error
校验消息 校验返回码为500或者消息类型不对
Types ¶
type DiscoverError ¶
从discover获取到了类似500的错误码
type InstanceInProto ¶
通过proto定义来构造实例
func NewInstanceInProto ¶
func NewInstanceInProto( instance *namingpb.Instance, svcKey *model.ServiceKey, localValue local.InstanceLocalValue) *InstanceInProto
InstanceInProto的构造函数
func (*InstanceInProto) GetActiveDetectStatus ¶
func (i *InstanceInProto) GetActiveDetectStatus() model.ActiveDetectStatus
instance dynamic weight
func (*InstanceInProto) GetCircuitBreakerStatus ¶
func (i *InstanceInProto) GetCircuitBreakerStatus() model.CircuitBreakerStatus
instance dynamic weight
func (*InstanceInProto) GetExtendedData ¶
func (i *InstanceInProto) GetExtendedData(pluginIndex int32) interface{}
获取插件数据
func (*InstanceInProto) GetHost ¶
func (i *InstanceInProto) GetHost() string
获取实例Host,,因为pb3的GetId返回wrappers.StringValue,所以改写
func (*InstanceInProto) GetId ¶
func (i *InstanceInProto) GetId() string
获取实例ID,因为pb3的GetId返回wrappers.StringValue,所以改写
func (*InstanceInProto) GetInstanceKey ¶
func (i *InstanceInProto) GetInstanceKey() model.InstanceKey
获取实例的四元组标识
func (*InstanceInProto) GetInstanceLocalValue ¶
func (i *InstanceInProto) GetInstanceLocalValue() local.InstanceLocalValue
获取本地可变状态值
func (*InstanceInProto) GetPort ¶
func (i *InstanceInProto) GetPort() uint32
获取实例端口,因为pb3的GetPort返回wrappers.UInt32Value,所以改写
func (*InstanceInProto) GetPriority ¶
func (i *InstanceInProto) GetPriority() uint32
获取实例优先级,因为pb3的GetPriority返回wrappers.UInt32Value,所以改写
func (*InstanceInProto) GetProtocol ¶
func (i *InstanceInProto) GetProtocol() string
获取实例协议,因为pb3的GetProtocol返回wrappers.UInt32Value,所以改写
func (*InstanceInProto) GetRevision ¶
func (i *InstanceInProto) GetRevision() string
获取实例Revision,,因为pb3的GetRevision返回wrappers.StringValue,所以改写
func (*InstanceInProto) GetSliceWindows ¶
func (i *InstanceInProto) GetSliceWindows(pluginIndex int32) []*metric.SliceWindow
获取统计窗口
func (*InstanceInProto) GetVersion ¶
func (i *InstanceInProto) GetVersion() string
获取实例版本,因为pb3的GetVersion返回wrappers.StringValue,所以改写
func (*InstanceInProto) GetWeight ¶
func (i *InstanceInProto) GetWeight() int
获取实例权重,,因为pb3的GetWeight返回wrappers.UInt32Value,所以改写
func (*InstanceInProto) IsEnableHealthCheck ¶
func (i *InstanceInProto) IsEnableHealthCheck() bool
whether the health check enabled
func (*InstanceInProto) IsHealthy ¶
func (i *InstanceInProto) IsHealthy() bool
instance health status
func (*InstanceInProto) IsIsolated ¶
func (i *InstanceInProto) IsIsolated() bool
instance is isolated
func (*InstanceInProto) SetExtendedData ¶
func (i *InstanceInProto) SetExtendedData(pluginIndex int32, data interface{})
设置插件数据
func (*InstanceInProto) SingleInstances ¶
func (i *InstanceInProto) SingleInstances() []model.Instance
获取单个实例数组
type MeshConfigProto ¶
type MeshConfigProto struct { *model.ServiceKey CacheLoaded int32 // contains filtered or unexported fields }
网格规则
func NewMeshConfigInProto ¶
func NewMeshConfigInProto(resp *namingpb.DiscoverResponse) *MeshConfigProto
新建网格规则
type MeshProto ¶
type MeshProto struct { *model.ServiceKey CacheLoaded int32 // contains filtered or unexported fields }
网格
type RateLimitingAssistant ¶
type RateLimitingAssistant struct { }
限流解析助手
func (*RateLimitingAssistant) ParseRuleValue ¶
func (r *RateLimitingAssistant) ParseRuleValue(resp *namingpb.DiscoverResponse) (proto.Message, string)
解析出具体的规则值
func (*RateLimitingAssistant) SetDefault ¶
func (r *RateLimitingAssistant) SetDefault(message proto.Message)
设置默认值
type RoutingAssistant ¶
type RoutingAssistant struct { }
路由规则解析助手
func (*RoutingAssistant) ParseRuleValue ¶
func (r *RoutingAssistant) ParseRuleValue(resp *namingpb.DiscoverResponse) (proto.Message, string)
解析出具体的规则值
func (*RoutingAssistant) SetDefault ¶
func (r *RoutingAssistant) SetDefault(message proto.Message)
设置默认值
type ServiceInstancesInProto ¶
type ServiceInstancesInProto struct { CacheLoaded int32 // contains filtered or unexported fields }
通用的应答
func NewServiceInstancesInProto ¶
func NewServiceInstancesInProto(resp *namingpb.DiscoverResponse, createLocalValue func(string) local.InstanceLocalValue, pluginValues *SvcPluginValues, svcLocalValue local.ServiceLocalValue) *ServiceInstancesInProto
ServiceInstancesResponse的构造函数
func (*ServiceInstancesInProto) GetGetTotalWeight ¶
func (s *ServiceInstancesInProto) GetGetTotalWeight() int
总权重
func (*ServiceInstancesInProto) GetInstance ¶
func (s *ServiceInstancesInProto) GetInstance(instId string) model.Instance
通过实例ID获取实例
func (*ServiceInstancesInProto) GetInstanceLocalValue ¶
func (s *ServiceInstancesInProto) GetInstanceLocalValue(instId string) local.InstanceLocalValue
按实例获取本地可变状态值
func (*ServiceInstancesInProto) GetInstances ¶
func (s *ServiceInstancesInProto) GetInstances() []model.Instance
获取服务实例列表
func (*ServiceInstancesInProto) GetMetadata ¶
func (s *ServiceInstancesInProto) GetMetadata() map[string]string
获取元数据信息
func (*ServiceInstancesInProto) GetNamespace ¶
func (s *ServiceInstancesInProto) GetNamespace() string
获取名字空间
func (*ServiceInstancesInProto) GetRevision ¶
func (s *ServiceInstancesInProto) GetRevision() string
获取服务的修订版本信息
func (*ServiceInstancesInProto) GetService ¶
func (s *ServiceInstancesInProto) GetService() string
获取服务名
func (*ServiceInstancesInProto) GetServiceClusters ¶
func (s *ServiceInstancesInProto) GetServiceClusters() model.ServiceClusters
获取缓存索引
func (*ServiceInstancesInProto) GetServiceLoadbalancer ¶
func (s *ServiceInstancesInProto) GetServiceLoadbalancer() loadbalancer.LoadBalancer
获取服务级的负载均衡
func (*ServiceInstancesInProto) GetServiceLocalValue ¶
func (s *ServiceInstancesInProto) GetServiceLocalValue() local.ServiceLocalValue
获取服务的localvalue
func (*ServiceInstancesInProto) GetServiceRouterChain ¶
func (s *ServiceInstancesInProto) GetServiceRouterChain() *servicerouter.RouterChain
获取服务级的路由链
func (*ServiceInstancesInProto) GetSvcIDSet ¶
func (s *ServiceInstancesInProto) GetSvcIDSet() model.HashSet
返回实例的id集合
func (*ServiceInstancesInProto) GetTotalWeight ¶
func (s *ServiceInstancesInProto) GetTotalWeight() int
获取所有实例总权重
func (*ServiceInstancesInProto) GetType ¶
func (s *ServiceInstancesInProto) GetType() model.EventType
获取配置类型
func (*ServiceInstancesInProto) IsCacheLoaded ¶
func (s *ServiceInstancesInProto) IsCacheLoaded() bool
pb值是否为从缓存文件中加载的
func (*ServiceInstancesInProto) IsInitialized ¶
func (s *ServiceInstancesInProto) IsInitialized() bool
服务实例列表是否已经加载
func (*ServiceInstancesInProto) ReloadServiceClusters ¶
func (s *ServiceInstancesInProto) ReloadServiceClusters()
重建缓存索引
func (*ServiceInstancesInProto) SetInitialized ¶
func (s *ServiceInstancesInProto) SetInitialized(isInitialized bool)
type ServiceRuleAssistant ¶
type ServiceRuleAssistant interface { //解析出具体的规则值 ParseRuleValue(resp *namingpb.DiscoverResponse) (proto.Message, string) //设置默认值 SetDefault(message proto.Message) //规则校验 Validate(message proto.Message, cache model.RuleCache) error }
助手接口
type ServiceRuleInProto ¶
type ServiceRuleInProto struct { *model.ServiceKey CacheLoaded int32 // contains filtered or unexported fields }
路由规则配置对象
func NewServiceRuleInProto ¶
func NewServiceRuleInProto(resp *namingpb.DiscoverResponse) *ServiceRuleInProto
创建路由规则配置对象
func (*ServiceRuleInProto) GetRevision ¶
func (s *ServiceRuleInProto) GetRevision() string
缓存版本号,标识缓存是否更新
func (*ServiceRuleInProto) GetRuleCache ¶
func (s *ServiceRuleInProto) GetRuleCache() model.RuleCache
获取规则缓存信息
func (*ServiceRuleInProto) GetValidateError ¶
func (s *ServiceRuleInProto) GetValidateError() error
获取规则校验错误
func (*ServiceRuleInProto) IsCacheLoaded ¶
func (s *ServiceRuleInProto) IsCacheLoaded() bool
pb的值是否从缓存文件中加载
func (*ServiceRuleInProto) IsInitialized ¶
func (s *ServiceRuleInProto) IsInitialized() bool
缓存是否已经初始化
func (*ServiceRuleInProto) ValidateAndBuildCache ¶
func (s *ServiceRuleInProto) ValidateAndBuildCache() error
校验路由规则,以及构建正则表达式缓存
type ServicesProto ¶
type ServicesProto struct { *model.ServiceKey CacheLoaded int32 // contains filtered or unexported fields }
批量服务
func NewServicesProto ¶
func NewServicesProto(resp *namingpb.DiscoverResponse) *ServicesProto
新建服务proto
type SvcPluginValues ¶
type SvcPluginValues struct { Routers *servicerouter.RouterChain Loadbalancer loadbalancer.LoadBalancer }
服务级插件值