Documentation ¶
Index ¶
- Constants
- Variables
- type ClientConfig
- type ClientLogRollingConfig
- type ClientLogSamplingConfig
- type ClientOption
- func WithAccessKey(accessKey string) ClientOption
- func WithAppName(appName string) ClientOption
- func WithBeatInterval(beatInterval int64) ClientOption
- func WithCacheDir(cacheDir string) ClientOption
- func WithEndpoint(endpoint string) ClientOption
- func WithLogDir(logDir string) ClientOption
- func WithLogLevel(logLevel string) ClientOption
- func WithLogRollingConfig(rollingConfig *ClientLogRollingConfig) ClientOption
- func WithLogSampling(tick time.Duration, initial int, thereafter int) ClientOption
- func WithNamespaceId(namespaceId string) ClientOption
- func WithNotLoadCacheAtStart(notLoadCacheAtStart bool) ClientOption
- func WithOpenKMS(openKMS bool) ClientOption
- func WithPassword(password string) ClientOption
- func WithRegionId(regionId string) ClientOption
- func WithSecretKey(secretKey string) ClientOption
- func WithTLS(tlsCfg TLSConfig) ClientOption
- func WithTimeoutMs(timeoutMs uint64) ClientOption
- func WithUpdateCacheWhenEmpty(updateCacheWhenEmpty bool) ClientOption
- func WithUpdateThreadNum(updateThreadNum int) ClientOption
- func WithUsername(username string) ClientOption
- type ServerConfig
- type ServerOption
- type TLSConfig
- type TLSOption
Constants ¶
View Source
const ( KEY_USERNAME = "username" KEY_PASSWORD = "password" KEY_ENDPOINT = "endpoint" KEY_NAME_SPACE = "namespace" KEY_ACCESS_KEY = "accessKey" KEY_SECRET_KEY = "secretKey" KEY_SERVER_ADDR = "serverAddr" KEY_CONTEXT_PATH = "contextPath" KEY_ENCODE = "encode" KEY_DATA_ID = "dataId" KEY_GROUP = "group" KEY_TENANT = "tenant" KEY_DESC = "desc" KEY_APP_NAME = "appName" KEY_CONTENT = "content" KEY_TIMEOUT_MS = "timeoutMs" KEY_LISTEN_INTERVAL = "listenInterval" KEY_SERVER_CONFIGS = "serverConfigs" KEY_CLIENT_CONFIG = "clientConfig" KEY_TOKEN = "token" KEY_ACCESS_TOKEN = "accessToken" KEY_TOKEN_TTL = "tokenTtl" KEY_GLOBAL_ADMIN = "globalAdmin" KEY_TOKEN_REFRESH_WINDOW = "tokenRefreshWindow" WEB_CONTEXT = "/xgrpc" CONFIG_BASE_PATH = "/v1/cs" CONFIG_PATH = CONFIG_BASE_PATH + "/configs" CONFIG_AGG_PATH = "/datum.do" CONFIG_LISTEN_PATH = CONFIG_BASE_PATH + "/configs/listener" SERVICE_BASE_PATH = "/v1/ns" SERVICE_PATH = SERVICE_BASE_PATH + "/instance" SERVICE_INFO_PATH = SERVICE_BASE_PATH + "/service" SERVICE_SUBSCRIBE_PATH = SERVICE_PATH + "/list" NAMESPACE_PATH = "/v1/console/namespaces" SPLIT_CONFIG = string(rune(1)) SPLIT_CONFIG_INNER = string(rune(2)) KEY_LISTEN_CONFIGS = "Listening-Configs" KEY_SERVICE_NAME = "serviceName" KEY_IP = "ip" KEY_PORT = "port" KEY_WEIGHT = "weight" KEY_ENABLE = "enable" KEY_HEALTHY = "healthy" KEY_METADATA = "metadata" KEY_CLUSTER_NAME = "clusterName" KEY_CLUSTER = "cluster" KEY_BEAT = "beat" KEY_DOM = "dom" DEFAULT_CONTEXT_PATH = "/xgrpc" CLIENT_VERSION = "Xgrpc-Go-Client:v2.0.0" REQUEST_DOMAIN_RETRY_TIME = 3 SERVICE_INFO_SPLITER = "@@" CONFIG_INFO_SPLITER = "@@" DEFAULT_NAMESPACE_ID = "public" DEFAULT_GROUP = "DEFAULT_GROUP" NAMING_INSTANCE_ID_SPLITTER = "#" DefaultClientErrorCode = "SDK.XgrpcError" DEFAULT_SERVER_SCHEME = "http" HTTPS_SERVER_SCHEME = "https" LABEL_SOURCE = "source" LABEL_SOURCE_SDK = "sdk" LABEL_MODULE = "module" LABEL_MODULE_CONFIG = "config" LABEL_MODULE_NAMING = "naming" RESPONSE_CODE_SUCCESS = 200 UN_REGISTER = 301 KEEP_ALIVE_TIME = 5 DEFAULT_TIMEOUT_MILLS = 3000 ALL_SYNC_INTERNAL = 5 * time.Minute CLIENT_APPNAME_HEADER = "Client-AppName" CLIENT_REQUEST_TS_HEADER = "Client-RequestTS" CLIENT_REQUEST_TOKEN_HEADER = "Client-RequestToken" EX_CONFIG_INFO = "exConfigInfo" CHARSET_KEY = "charset" LOG_FILE_NAME = "xgrpc-sdk.log" HTTPS_SERVER_PORT = 443 GRPC = "grpc" FAILOVER_FILE_SUFFIX = "_failover" )
View Source
const ( HEART_BEAT_TIMEOUT = "preserved.heart.beat.timeout" IP_DELETE_TIMEOUT = "preserved.ip.delete.timeout" HEART_BEAT_INTERVAL = "preserved.heart.beat.interval" )
Variables ¶
View Source
var SkipVerifyConfig = TLSConfig{Enable: true}
Functions ¶
This section is empty.
Types ¶
type ClientConfig ¶
type ClientConfig struct { TimeoutMs uint64 // timeout for requesting Xgrpc server, default value is 10000ms ListenInterval uint64 // Deprecated BeatInterval int64 // the time interval for sending beat to server,default value is 5000ms NamespaceId string // the namespaceId of Xgrpc.When namespace is public, fill in the blank string here. AppName string // the appName AppKey string // the client identity information Endpoint string // the endpoint for get Xgrpc server addresses RegionId string // the regionId for kms AccessKey string // the AccessKey for kms SecretKey string // the SecretKey for kms OpenKMS bool // it's to open kms,default is false. https://help.aliyun.com/product/28933.html CacheDir string // the directory for persist xgrpc service info,default value is current path UpdateThreadNum int // the number of gorutine for update xgrpc service info,default value is 20 NotLoadCacheAtStart bool // not to load persistent xgrpc service info in CacheDir at start time UpdateCacheWhenEmpty bool // update cache when get empty service instance from server Username string // the username for xgrpc auth Password string // the password for xgrpc auth LogDir string // the directory for log, default is current path LogLevel string // the level of log, it's must be debug,info,warn,error, default value is info ContextPath string // the xgrpc server contextpath AppendToStdout bool // if append log to stdout LogSampling *ClientLogSamplingConfig // the sampling config of log LogRollingConfig *ClientLogRollingConfig // log rolling config TLSCfg TLSConfig // tls Config }
func NewClientConfig ¶
func NewClientConfig(opts ...ClientOption) *ClientConfig
type ClientLogRollingConfig ¶
type ClientLogRollingConfig struct { // MaxSize is the maximum size in megabytes of the log file before it gets // rotated. It defaults to 100 megabytes. MaxSize int // MaxAge is the maximum number of days to retain old log files based on the // timestamp encoded in their filename. Note that a day is defined as 24 // hours and may not exactly correspond to calendar days due to daylight // savings, leap seconds, etc. The default is not to remove old log files // based on age. MaxAge int // MaxBackups is the maximum number of old log files to retain. The default // is to retain all old log files (though MaxAge may still cause them to get // deleted.) MaxBackups int // LocalTime determines if the time used for formatting the timestamps in // backup files is the computer's local time. The default is to use UTC // time. LocalTime bool // Compress determines if the rotated log files should be compressed // using gzip. The default is not to perform compression. Compress bool }
type ClientLogSamplingConfig ¶
type ClientOption ¶
type ClientOption func(*ClientConfig)
ClientOption ...
func WithLogRollingConfig ¶
func WithLogRollingConfig(rollingConfig *ClientLogRollingConfig) ClientOption
WithLogRollingConfig ...
func WithLogSampling ¶
func WithLogSampling(tick time.Duration, initial int, thereafter int) ClientOption
WithLogSampling ...
func WithNotLoadCacheAtStart ¶
func WithNotLoadCacheAtStart(notLoadCacheAtStart bool) ClientOption
WithNotLoadCacheAtStart ...
func WithTLS ¶
func WithTLS(tlsCfg TLSConfig) ClientOption
func WithUpdateCacheWhenEmpty ¶
func WithUpdateCacheWhenEmpty(updateCacheWhenEmpty bool) ClientOption
WithUpdateCacheWhenEmpty ...
func WithUpdateThreadNum ¶
func WithUpdateThreadNum(updateThreadNum int) ClientOption
WithUpdateThreadNum ...
type ServerConfig ¶
type ServerConfig struct { Scheme string // the xgrpc server scheme,default=http,this is not required in 2.0 ContextPath string // the xgrpc server contextpath,default=/xgrpc,this is not required in 2.0 IpAddr string // the xgrpc server address Port uint64 // xgrpc server port GrpcPort uint64 // xgrpc server grpc port, default=server port + 1000, this is not required }
func NewServerConfig ¶
func NewServerConfig(ipAddr string, port uint64, opts ...ServerOption) *ServerConfig
type ServerOption ¶
type ServerOption func(*ServerConfig)
ServerOption ...
func WithContextPath ¶
func WithContextPath(contextPath string) ServerOption
WithContextPath set contextPath for server
func WithGrpcPort ¶
func WithGrpcPort(port uint64) ServerOption
WithGrpcPort set grpc port for server
type TLSConfig ¶
type TLSConfig struct { Enable bool // enable tls CaFile string // clients use when verifying server certificates CertFile string // server use when verifying client certificates KeyFile string // server use when verifying client certificates ServerNameOverride string // serverNameOverride is for testing only }
func NewTLSConfig ¶
Click to show internal directories.
Click to hide internal directories.