日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置項

使用通道服務功能消費數(shù)據(jù)時,您可以根據(jù)需要配置客戶端tunnel client、數(shù)據(jù)消費worker以及日志。本文介紹通道服務的配置項。

tunnel client

初始化tunnel client時,您可以通過NewTunnelClientWithConfig接口自定義客戶端配置,如果未指定config進行接口初始化或者confignil,則默認配置會使用DefaultTunnelConfig。

DefaultTunnelConfig的配置信息如下:

var DefaultTunnelConfig = &TunnelConfig{
      //最大指數(shù)退避重試時間。
      MaxRetryElapsedTime: 75 * time.Second,
      //HTTP請求超時時間。
      RequestTimeout:      60 * time.Second,
      //http.DefaultTransport。
      Transport:           http.DefaultTransport,
}

數(shù)據(jù)消費worker

TunnelWorkerConfig中包含了數(shù)據(jù)消費worker需要的配置,其中ProcessorFactory為必填項,其余參數(shù)如果不填寫將使用默認值,通常使用默認值即可。

TunnelWorkerConfig的配置信息如下:

type TunnelWorkerConfig struct {
   //worker同Tunnel服務的心跳超時時間,通常使用默認值即可。
   HeartbeatTimeout  time.Duration
   //worker發(fā)送心跳的頻率,通常使用默認值即可。
   HeartbeatInterval time.Duration
   //tunnel下消費連接建立接口,通常使用默認值即可。
   ChannelDialer     ChannelDialer

   //消費連接上具體處理器產(chǎn)生接口,通常使用callback函數(shù)初始化SimpleProcessFactory即可。
   ProcessorFactory ChannelProcessorFactory

   //zap日志配置,默認值為DefaultLogConfig。
   LogConfig      *zap.Config
   //zap日志輪轉(zhuǎn)配置,默認值為DefaultSyncer。
   LogWriteSyncer zapcore.WriteSyncer
}

其中ProcessorFactory為用戶注冊消費callback函數(shù)以及其他信息的接口,建議使用SDK中自帶SimpleProcessorFactory實現(xiàn)。

SimpleProcessorFactory的配置信息如下:

type SimpleProcessFactory struct {
   //用戶自定義信息,會傳遞到ProcessFunc和ShutdownFunc中的ChannelContext參數(shù)中。
   CustomValue interface{}

   //Worker記錄checkpoint的間隔,CpInterval<=0時會使用DefaultCheckpointInterval。
   CpInterval time.Duration

   //worker數(shù)據(jù)處理的同步調(diào)用callback,ProcessFunc返回error時worker會用本批數(shù)據(jù)退避重試ProcessFunc。
   ProcessFunc  func(channelCtx *ChannelContext, records []*Record) error
   //worker退出時的同步調(diào)用callback。
   ShutdownFunc func(channelCtx *ChannelContext)

   //日志配置,Logger為nil時會使用DefaultLogConfig初始化logger。
   Logger *zap.Logger
}

日志

默認日志配置和日志輪轉(zhuǎn)配置示例如下:

默認日志配置

//DefaultLogConfig是TunnelWorkerConfig和SimpleProcessFactory使用的默認日志配置。
var DefaultLogConfig = zap.Config{
   Level:       zap.NewAtomicLevelAt(zap.InfoLevel),
   Development: false,
   Sampling: &zap.SamplingConfig{
      Initial:    100,
      Thereafter: 100,
   },
   Encoding: "json",
   EncoderConfig: zapcore.EncoderConfig{
      TimeKey:        "ts",
      LevelKey:       "level",
      NameKey:        "logger",
      CallerKey:      "caller",
      MessageKey:     "msg",
      StacktraceKey:  "stacktrace",
      LineEnding:     zapcore.DefaultLineEnding,
      EncodeLevel:    zapcore.LowercaseLevelEncoder,
      EncodeTime:     zapcore.ISO8601TimeEncoder,
      EncodeDuration: zapcore.SecondsDurationEncoder,
      EncodeCaller:   zapcore.ShortCallerEncoder,
   },
}

日志輪轉(zhuǎn)配置

//DefaultSyncer是TunnelWorkerConfig和SimpleProcessFactory使用的默認日志輪轉(zhuǎn)配置
var DefaultSyncer = zapcore.AddSync(&lumberjack.Logger{
   //日志文件路徑。
   Filename:   "tunnelClient.log",
   //最大日志文件大小。
   MaxSize:    512, //MB
   //壓縮輪轉(zhuǎn)的日志文件數(shù)。
   MaxBackups: 5,
   //輪轉(zhuǎn)日志文件保留的最大天數(shù)。
   MaxAge:     30, //days
   //是否壓縮輪轉(zhuǎn)日志文件。
   Compress:   true,
})