赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 开发参考
  5. SDK参考
  6. Go SDK
  7. 通道服务
  8. 配置项

配置项

  • 通道服务
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

使用通道服务功能消费数据时,您可以根据需要配置客户端tunnel client、数据消费worker以及日志。本文介绍通道服务的配置项。

tunnel client

初始化tunnel client时,您可以通过NewTunnelClientWithConfig接口自定义客户端配置,如果未指定config进行接口初始化或者config为nil,则默认配置会使用DefaultTunnelConfig。

DefaultTunnelConfig的配置信息如下:

var DefaultTunnelConfig = &TunnelConfig{
      //最大指数退避重试时间。
      MaxRetryElapsedTime: 75 * time.Second,
      //HTTP请求超时时间。
      RequestTimeout:      60 * time.Second,
      //http.DefaultTransport。
      Transport:           http.DefaultTransport,
}

数据消费worker

TunnelWorkerConfig中包含了数据消费worker需要的配置,其中ProcessorFactory为必填项,其余参数如果不填写将使用默认值,通常使用默认值即可。

TunnelWorkerConfig的配置信息如下:

type TunnelWorkerConfig struct {
   //worker同Tunnel服务的心跳超时时间,通常使用默认值即可。
   HeartbeatTimeout  time.Duration
   //worker发送心跳的频率,通常使用默认值即可。
   HeartbeatInterval time.Duration
   //tunnel下消费连接建立接口,通常使用默认值即可。
   ChannelDialer     ChannelDialer

   //消费连接上具体处理器产生接口,通常使用callback函数初始化SimpleProcessFactory即可。
   ProcessorFactory ChannelProcessorFactory

   //zap日志配置,默认值为DefaultLogConfig。
   LogConfig      *zap.Config
   //zap日志轮转配置,默认值为DefaultSyncer。
   LogWriteSyncer zapcore.WriteSyncer
}

其中ProcessorFactory为用户注册消费callback函数以及其他信息的接口,建议使用SDK中自带SimpleProcessorFactory实现。

SimpleProcessorFactory的配置信息如下:

type SimpleProcessFactory struct {
   //用户自定义信息,会传递到ProcessFunc和ShutdownFunc中的ChannelContext参数中。
   CustomValue interface{}

   //Worker记录checkpoint的间隔,CpInterval<=0时会使用DefaultCheckpointInterval。
   CpInterval time.Duration

   //worker数据处理的同步调用callback,ProcessFunc返回error时worker会用本批数据退避重试ProcessFunc。
   ProcessFunc  func(channelCtx *ChannelContext, records []*Record) error
   //worker退出时的同步调用callback。
   ShutdownFunc func(channelCtx *ChannelContext)

   //日志配置,Logger为nil时会使用DefaultLogConfig初始化logger。
   Logger *zap.Logger
}

日志

默认日志配置和日志轮转配置示例如下:

默认日志配置

//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,
   },
}

日志轮转配置

//DefaultSyncer是TunnelWorkerConfig和SimpleProcessFactory使用的默认日志轮转配置
var DefaultSyncer = zapcore.AddSync(&lumberjack.Logger{
   //日志文件路径。
   Filename:   "tunnelClient.log",
   //最大日志文件大小。
   MaxSize:    512, //MB
   //压缩轮转的日志文件数。
   MaxBackups: 5,
   //轮转日志文件保留的最大天数。
   MaxAge:     30, //days
   //是否压缩轮转日志文件。
   Compress:   true,
})
相关文章

初始化Tunnel client 2025-04-22 14:25

Tunnel client是通道服务的客户端,它为调用者提供了一系列的方法,可以用来操作通道、消费数据等。如果要使用通道服务消费表中的数据,您需要初始化一个Tunnel client。 准备工作 初始化Tunnel Client前,您需要获取实例的相关信息、安装Tablestore Go SDK并配

快速开始 2025-04-22 14:25

通过通道服务,您可以消费表中的数据。本文介绍如何使用Go SDK快速体验通道服务。使用前,您需要了解使用通道服务的注意事项。 注意事项

配置项 2025-04-22 14:25

使用通道服务功能消费数据时,您可以根据需要配置客户端tunnel client、数据消费worker以及日志。本文介绍通道服务的配置项。 tunnel client

创建通道 2025-04-22 14:25

如果需要实时消费表中数据,您需要调用CreateTunnel接口为数据表创建一个通道,一张数据表上可以创建多个通道。在创建通道时需要指定数据表名称、通道名称和通道类型。 前提条件 已初始化TunnelClient

获取表内的通道信息 2025-04-22 14:25

创建通道后,您可以使用ListTunnel接口列举某个数据表内所有通道的具体信息,例如通道名称、通道类型、通道ID、通道所处阶段、数据是否超期等。 前提条件 已初始化TunnelClient。

获取通道的具体信息 2025-04-22 14:25

创建通道后,您可以使用DescribeTunnel接口获取某个通道内的具体信息,例如通道信息、通道内的Channel信息等。 前提条件

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号