Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ActiveAresNameSpace is current namespace of a list of Ares Supported in current service ActiveAresNameSpace string // ActiveJobNameSpace is current namespace of a list of jobs Supported in current service ActiveJobNameSpace string // ConfigRootPath is the root path of config ConfigRootPath string = "config" // ConfigFile is the file path of config file ConfigFile string // Module configures an HTTP server. Module = fx.Options( fx.Provide( NewServiceConfig, ), ) // SinkIsAresDB is a flag. It is true if sink is aresDB SinkIsAresDB = false // EtcdCfgEvent is used to detect etcd cluster changes EtcdCfgEvent = make(chan int, 1) )
Functions ¶
This section is empty.
Types ¶
type AresNSConfig ¶
type AresNSConfig struct {
AresNameSpaces map[string][]string `yaml:"namespaces"`
AresClusters map[string]SinkConfig `yaml:"clusters"`
}
AresNSConfig defines the mapping b/w ares namespace and its clusters
type ControllerConfig ¶
type ControllerConfig struct {
// Enable defines whether to enable aresDB controll or not
Enable bool `yaml:"enable" default:"false"`
// Address is aresDB controller address
Address string `yaml:"address" default:"localhost:5436"`
// Timeout is request sent to aresDB controller timeout in seconds
Timeout int `yaml:"timeout" default:"30"`
// RefreshInterval is the interval to sync up with aresDB controller in minutes
RefreshInterval int `yaml:"refreshInterval" default:"10"`
// ServiceName is aresDB controller name
ServiceName string `yaml:"serviceName" default:"ares-controller"`
}
ControllerConfig defines aresDB controller configuration
type EtcdClusterConfig ¶
type EtcdClusterConfig struct {
EtcdCluster etcd.ClusterConfig `yaml:",inline"`
UNS string `yaml:"uns"`
}
type EtcdConfig ¶
type EtcdConfig struct {
*sync.Mutex
EtcdConfig etcd.Configuration `yaml:",inline"`
}
type HeartBeatConfig ¶
type HeartBeatConfig struct {
Enabled bool `yaml:"enabled"`
Timeout int `yaml:"timeout"`
Interval int `yaml:"interval"`
CheckInterval int `yaml:"checkInterval"`
}
HeartBeatConfig represents heartbeat config
type JobNSConfig ¶
JobNSConfig defines the mapping b/w job namespace and its clusters
type KafkaProducerConfig ¶
type KafkaProducerConfig struct {
// Brokers defines a list of broker addresses separated by comma
Brokers string `yaml:"brokers" json:"brokers"`
// RetryMax is the max number of times to retry sending a message (default 3).
RetryMax int `yaml:"retryMax" json:"retryMax"`
// TimeoutInMSec is the max duration the broker will wait
// the receipt of the number of RequiredAcks (defaults to 10 seconds)
TimeoutInSec int `yaml:"timeoutInSec" json:"timeoutInSec"`
// SchemaRefreshInterval is the interval in seconds for the connector to
// fetch and refresh schema from ares
// if <= 0, will use default
SchemaRefreshInterval int `yaml:"schemaRefreshInterval" json:"schemaRefreshInterval"`
}
KafkaProducerConfig represents Kafka producer configuration
type Params ¶
type Params struct {
fx.In
Environment utils.EnvironmentContext
Logger *zap.Logger
Scope tally.Scope
Config cfgfx.Provider
}
Params defines the base objects for a service.
type Result ¶
type Result struct {
fx.Out
ServiceConfig ServiceConfig
}
Result defines the objects that the config module provides.
func NewServiceConfig ¶
NewServiceConfig constructs ServiceConfig.
type ServiceConfig ¶
type ServiceConfig struct {
Environment utils.EnvironmentContext
Logger *zap.Logger
Scope tally.Scope
Config cfgfx.Provider
Service string `yaml:"service.name"`
BackendPort int `yaml:"rest.http.address"`
AresNSConfig AresNSConfig `yaml:"ares"`
JobNSConfig JobNSConfig `yaml:"jobs"`
ActiveAresClusters map[string]SinkConfig `yaml:"-"`
ActiveJobs []string `yaml:"-"`
ControllerConfig *ControllerConfig `yaml:"controller"`
ZooKeeperConfig ZooKeeperConfig `yaml:"zookeeper"`
EtcdConfig EtcdConfig `yaml:"etcd"`
EtcdClustersConfig []EtcdClusterConfig `yaml:"etcd.etcdClusters"`
HeartbeatConfig *HeartBeatConfig `yaml:"heartbeat"`
}
ServiceConfig defines the service configuration.
type SinkConfig ¶
type SinkConfig struct {
// SinkMode defines the subscriber sink mode
SinkModeStr string `yaml:"sinkMode" json:"sinkMode"`
// AresDBConnectorConfig defines aresDB client config
AresDBConnectorConfig client.ConnectorConfig `yaml:"aresDB" json:"aresDB"`
// KafkaProducerConfig defines Kafka producer config
KafkaProducerConfig KafkaProducerConfig `yaml:"kafkaProducer" json:"kafkaProducer"`
}
SinkConfig wraps sink configurations
func (SinkConfig) GetSinkMode ¶
func (s SinkConfig) GetSinkMode() SinkMode
type ZooKeeperConfig ¶
type ZooKeeperConfig struct {
// Server defines zookeeper server addresses
Server string `yaml:"server"`
SessionTimeoutSeconds time.Duration `yaml:"sessionTimeoutSeconds" default:"60"`
ConnectionTimeoutSeconds time.Duration `yaml:"connectionTimeoutSeconds" default:"15"`
BaseSleepTimeSeconds time.Duration `yaml:"exponentialBackoffRetryPolicy.baseSleepTimeSeconds" default:"1"`
MaxRetries int `yaml:"exponentialBackoffRetryPolicy.maxRetries" default:"3"`
MaxSleepSeconds time.Duration `yaml:"exponentialBackoffRetryPolicy.maxSleepSeconds" default:"15"`
}
ZooKeeperConfig defines the ZooKeeper client configuration
Click to show internal directories.
Click to hide internal directories.