Documentation
¶
Index ¶
- Constants
- Variables
- func ConfigBaseLogger(logDir string, logLevel int) error
- func ConfigDetectLogger(logDir string, logLevel int) error
- func ConfigLoggers(logDir string, logLevel int) error
- func ConfigNetworkLogger(logDir string, logLevel int) error
- func ConfigStatLogger(logDir string, logLevel int) error
- func ConfigStatReportLogger(logDir string, logLevel int) error
- func NewConfiguration() config.Configuration
- func SetBaseLogger(logger Logger)
- func SetDetectLogger(logger Logger)
- func SetLoggersDir(logDir string) error
- func SetLoggersLevel(loglevel int) error
- func SetStatLogger(logger Logger)
- func SetStatReportLogger(logger Logger)
- type ConsumerAPI
- type GetAllInstancesRequest
- type GetInstancesRequest
- type GetMeshConfigRequest
- type GetMeshRequest
- type GetOneInstanceRequest
- type GetServiceRuleRequest
- type GetServicesRequest
- type InitCalleeServiceRequest
- type InstanceDeRegisterRequest
- type InstanceHeartbeatRequest
- type InstanceRegisterRequest
- type InstanceRequest
- type LimitAPI
- type Logger
- type ProviderAPI
- type QuotaFuture
- type QuotaRequest
- type SDKContext
- type SDKOwner
- type ServiceCallResult
- type WatchServiceRequest
Constants ¶
View Source
const ( //权重随机负载均衡策略 LBPolicyWeightedRandom = config.DefaultLoadBalancerWR //权重一致性hash负载均衡策略 LBPolicyRingHash = config.DefaultLoadBalancerRingHash //Maglev算法的一致性hash负载均衡策略 LBPolicyMaglev = config.DefaultLoadBalancerMaglev //L5一致性Hash兼容算法,保证和L5产生相同的结果 LBPolicyL5CST = config.DefaultLoadBalancerL5CST )
View Source
const ( //调用成功 RetSuccess = model.RetSuccess //调用失败 RetFail = model.RetFail )
View Source
const ( MeshVirtualService = model.MeshVirtualService MeshServiceEntry = model.MeshServiceEntry MeshDestinationRule = model.MeshDestinationRule MeshEnvoyFilter = model.MeshEnvoyFilter MeshGateway = model.MeshGateway )
网格类型
View Source
const ( QuotaResultOk = model.QuotaResultOk QuotaResultLimited = model.QuotaResultLimited )
View Source
const ( //跟踪级别 TraceLog = log.TraceLog //调试级别 DebugLog = log.DebugLog //一般日志级别 InfoLog = log.InfoLog //警告日志级别 WarnLog = log.WarnLog //错误日志级别 ErrorLog = log.ErrorLog //致命级别 FatalLog = log.FatalLog //当要禁止日志的时候,可以设置此级别 NoneLog = log.NoneLog )
日志级别
View Source
const ( DefaultBaseLogLevel = log.DefaultBaseLogLevel //默认统计日志级别 DefaultStatLogLevel = log.DefaultStatLogLevel //默认探测日志级别 DefaultDetectLogLevel = log.DefaultDetectLogLevel //默认统计上报日志级别 DefaultStatReportLogLevel = log.DefaultStatReportLogLevel //默认网络交互日志级别 DefaultNetworkLogLevel = log.DefaultNetworkLogLevel )
View Source
const (
EventInstance = model.EventInstance
)
Variables ¶
View Source
var ( //通过以默认域名为埋点server的默认配置创建ConsumerAPI NewConsumerAPI = newConsumerAPI //NewConsumerAPIByFile 通过配置文件创建SDK ConsumerAPI对象 NewConsumerAPIByFile = newConsumerAPIByFile //NewConsumerAPIByFile 通过配置对象创建SDK ConsumerAPI对象 NewConsumerAPIByConfig = newConsumerAPIByConfig //NewConsumerAPIByContext 通过上下文创建SDK ConsumerAPI对象 NewConsumerAPIByContext = newConsumerAPIByContext //从系统默认配置文件中创建ConsumerAPI NewConsumerAPIByDefaultConfigFile = newConsumerAPIByDefaultConfigFile //创建上报对象 NewServiceCallResult = newServiceCallResult )
View Source
var ( //通过以默认域名为埋点server的默认配置创建LimitAPI NewLimitAPI = newLimitAPI //通过配置对象创建LimitAPI NewLimitAPIByConfig = newLimitAPIByConfig //通过sdkContext创建LimitAPI NewLimitAPIByContext = newLimitAPIByContext //通过配置文件创建SDK LimitAPI对象 NewLimitAPIByFile = newLimitAPIByFile )
View Source
var ( //通过以默认域名为埋点server的默认配置创建ProviderAPI NewProviderAPI = newProviderAPI //NewProviderAPIByFile 通过配置文件创建SDK ProviderAPI对象 NewProviderAPIByFile = newProviderAPIByFile //NewProviderAPIByConfig 通过配置对象创建SDK ProviderAPI对象 NewProviderAPIByConfig = newProviderAPIByConfig //NewProviderAPIByContext 通过上下文创建SDK ProviderAPI对象 NewProviderAPIByContext = newProviderAPIByContext //NewProviderAPIByDefaultConfigFile 通过系统默认配置文件创建ProviderAPI NewProviderAPIByDefaultConfigFile = newProviderAPIByDefaultConfigFile )
Functions ¶
func ConfigStatReportLogger ¶
配置统计上报日志对象
Types ¶
type ConsumerAPI ¶
type ConsumerAPI interface { SDKOwner // 同步获取单个服务 GetOneInstance(req *GetOneInstanceRequest) (*model.OneInstanceResponse, error) // 同步获取可用的服务列表 GetInstances(req *GetInstancesRequest) (*model.InstancesResponse, error) // 同步获取完整的服务列表 GetAllInstances(req *GetAllInstancesRequest) (*model.InstancesResponse, error) // 同步获取服务路由规则 GetRouteRule(req *GetServiceRuleRequest) (*model.ServiceRuleResponse, error) // 上报服务调用结果 UpdateServiceCallResult(req *ServiceCallResult) error //销毁API,销毁后无法再进行调用 Destroy() //订阅服务消息 WatchService(req *WatchServiceRequest) (*model.WatchServiceResponse, error) // 同步获取网格规则 GetMeshConfig(req *GetMeshConfigRequest) (*model.MeshConfigResponse, error) // 同步获取网格 GetMesh(req *GetMeshRequest) (*model.MeshResponse, error) // 根据业务同步获取批量服务 GetServicesByBusiness(req *GetServicesRequest) (*model.ServicesResponse, error) //初始化服务运行中需要的被调服务 InitCalleeService(req *InitCalleeServiceRequest) error }
ConsumerAPI 主调端API方法
type GetAllInstancesRequest ¶
type GetAllInstancesRequest struct {
model.GetAllInstancesRequest
}
GetAllInstancesRequest 获取服务下所有实例的请求对象
type GetInstancesRequest ¶
type GetInstancesRequest struct {
model.GetInstancesRequest
}
GetInstancesRequest 获取多个服务的请求对象
type GetMeshConfigRequest ¶
type GetMeshConfigRequest struct {
model.GetMeshConfigRequest
}
获取网格规则请求
type GetOneInstanceRequest ¶
type GetOneInstanceRequest struct {
model.GetOneInstanceRequest
}
GetOneInstanceRequest 获取单个服务的请求对象
type GetServiceRuleRequest ¶
type GetServiceRuleRequest struct {
model.GetServiceRuleRequest
}
GetServiceRuleRequest 获取服务规则请求
type InitCalleeServiceRequest ¶
type InitCalleeServiceRequest struct {
model.InitCalleeServiceRequest
}
type InstanceDeRegisterRequest ¶
type InstanceDeRegisterRequest struct {
model.InstanceDeRegisterRequest
}
InstanceDeRegisterRequest 反注册服务请求
type InstanceHeartbeatRequest ¶
type InstanceHeartbeatRequest struct {
model.InstanceHeartbeatRequest
}
InstanceHeartbeatRequest 心跳上报请求
type InstanceRegisterRequest ¶
type InstanceRegisterRequest struct {
model.InstanceRegisterRequest
}
InstanceRegisterRequest 注册服务请求
type InstanceRequest ¶
type InstanceRequest struct { //服务标识 model.ServiceKey //实例ID InstanceId string IP string Port uint16 }
实例请求
type LimitAPI ¶
type LimitAPI interface { SDKOwner // 获取限流配额,一次接口只获取一个配额 GetQuota(request QuotaRequest) (QuotaFuture, error) //销毁API,销毁后无法再进行调用 Destroy() }
限流相关的API相关接口
type ProviderAPI ¶
type ProviderAPI interface { SDKOwner // 同步注册服务,服务注册成功后会填充instance中的InstanceID字段 // 用户可保持该instance对象用于反注册和心跳上报 Register(instance *InstanceRegisterRequest) (*model.InstanceRegisterResponse, error) // 同步反注册服务 Deregister(instance *InstanceDeRegisterRequest) error // 心跳上报 Heartbeat(instance *InstanceHeartbeatRequest) error //销毁API,销毁后无法再进行调用 Destroy() }
ProviderAPI CL5服务端API的主接口
type QuotaFuture ¶
type QuotaFuture interface { //标识分配是否结束 Done() <-chan struct{} //获取分配结果 Get() *model.QuotaResponse //释放资源,仅用于并发数限流的场景 Release() }
实时/延时分配future
type QuotaRequest ¶
type QuotaRequest interface { //设置命名空间 SetNamespace(string) //设置服务名 SetService(string) //设置集群名 SetCluster(string) //设置业务标签信息 SetLabels(map[string]string) //设置单次请求超时时间 SetTimeout(timeout time.Duration) //设置最大重试次数 SetRetryCount(retryCount int) }
配额查询请求
type SDKContext ¶
type SDKContext interface { /** * @brief 销毁SDK上下文 */ Destroy() /** * @brief SDK上下文是否已经销毁 */ IsDestroyed() bool /** * @brief 获取全局配置信息 */ GetConfig() config.Configuration /** * @brief 获取插件列表 */ GetPlugins() plugin.Manager /** * @brief 获取执行引擎 */ GetEngine() model.Engine /** * @brief 获取值上下文 */ GetValueContext() model.ValueContext }
*
- @brief SDK配置对象,每个API实例都会挂载一个context,包含:
- 插件实例列表
- 配置实例
- 执行流程引擎,包括定时器等
func InitContextByConfig ¶
func InitContextByConfig(cfg config.Configuration) (SDKContext, error)
InitContextByStream 通过配置对象新建上下文
func InitContextByFile ¶
func InitContextByFile(path string) (SDKContext, error)
InitContextByFile 通过配置文件新建服务消费者配置
func InitContextByStream ¶
func InitContextByStream(buf []byte) (SDKContext, error)
InitContextByStream 通过YAML流新建服务消费者配置
type ServiceCallResult ¶
type ServiceCallResult struct {
model.ServiceCallResult
}
ServiceCallResult 服务调用结果
type WatchServiceRequest ¶
type WatchServiceRequest struct {
model.WatchServiceRequest
}
WatchService req
Click to show internal directories.
Click to hide internal directories.