日志服务
分类 | 依赖的 API | 说明 |
Source | 通过 DescribeCursor 接口获取日志下载游标。 | |
| 通过 ConsumeLogs 接口获取数据消费日志。 | |
| 调用 DescribeShards 接口获取日志主题的分区列表。 | |
| 调用 CreateConsumerGroup 接口创建日志服务消费组(设置消费组时使用)。 | |
| 调用 ModifyCheckpoint 接口为指定消费组重置指定分区的消费位点,即更新消费组 Checkpoint。 | |
| 调用 DescribeCheckpoint 接口查看指定消费组在指定日志分区上的当前消费位点,即获取消费组 Checkpoint。 | |
| 调用 DescribeConsumerGroups 接口获取一个日志项目下的所有消费组信息。 | |
Sink | 调用 PutLogs 接口上传日志到指定的日志主题中。 |
参数值 | 说明及配置示例 |
LogConstants.LOG_BEGIN_CURSOR | 从 Shard 的头部开始消费,即从最旧的数据开始。 configProps.put(LogConstants.LOG_CONSUMER_BEGIN_POSITION, LogConstants.LOG_BEGIN_CURSOR); |
LogConstants.LOG_END_CURSOR | 从 Shard 的尾部开始消费,即从最新的数据开始。 configProps.put(LogConstants.LOG_CONSUMER_BEGIN_POSITION, LogConstants.LOG_END_CURSOR); |
LogConstants.LOG_FROM_CHECKPOINT | 以消费组的 Checkpoint 作为消费的起始位置。当从 Checkpoint 获取起始位置时,必须提供消费组名称。 configProps.put(LogConstants.LOG_CONSUMER_BEGIN_POSITION, LogConstants.LOG_FROM_CHECKPOINT);
configProps.put(LogConstants.LOG_CONSUMER_BEGIN_POSITION, LogConstants.LOG_FROM_CHECKPOINT); configProps.put(LogConstants.LOG_CONSUMER_DEFAULT_POSITION, LogConstants.LOG_END_CURSOR); |
1512439000 | Unix 时间戳,一个整型数值的字符串,表示从 1970-01-01 到现在的秒数,用于消费 Shard 中该时间点开始写入的数据。 configProps.put(LogConstants.LOG_CONSUMER_BEGIN_POSITION, "1512439000"); |
模式 | 说明 |
ON_CHECKPOINTS(默认值) | 当开启 Flink 的 Checkpointing 功能,每个 Shard 的消费进度会保存在 Flink 的 State 中,同时会提交到日志服务端。 当作业 Failover 时,会从 Flink 的 State 中恢复;如果不存在对应的 Checkpoint,会从服务端保存的最新 Checkpoint 恢复。 final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE); env.enableCheckpointing(5000); |
DISABLED | Checkpoint 不会被提交到日志服务端。 |
PERIODIC | Checkpoint 被定时提交到日志服务端,与 Flink Checkpointing 完全独立。仅与消费组提交 Checkpoint 到日志服务有关,不影响 Flink 的 State。 支持自定义提交间隔,默认为 10 秒提交一次。 configProps.put(LogConstants.LOG_COMMIT_INTERVAL_MILLIS, "10000"); |
参数 | 说明 | 默认值 |
LOG_MAX_NUMBER_PER_FETCH | 每次读取的 LogGroup 个数。 | 100 |
LOG_FETCH_DATA_INTERVAL_MILLIS | 拉取数据的时间间隔(毫秒)。 | 100 |
LOG_SHARDS_DISCOVERY_INTERVAL_MILLIS | Shard 发现周期(毫秒)。 | 60000 |
SOURCE_QUEUE_SIZE | Source 内部队列大小。 | 1 |
SOURCE_IDLE_INTERVAL | Source 空闲等待间隔(毫秒)。 | 10 |
STOP_TIME | 停止消费的时间戳(Unix 秒),设置后消费到该时间点自动停止。 | / |
方法 | 说明 | 默认值 |
setTotalSizeInBytes(int) | Producer 可使用的内存总大小。 | 100MB |
setMaxThreadCount(int) | 发送数据的 I/O 线程数。 | max(CPU核数/2, 1) |
setMaxBatchSizeBytes(int) | 缓存发送的包的最大值。 | 5MB |
setMaxBatchCount(int) | 缓存发送的包中日志的数量。 | 4096 |
setLingerMs(int) | 日志数据被缓存发送的时间(毫秒)。 | 3000 |
setRetryCount(int) | 发送失败后的重试次数。 | 3 |
setMaxReservedAttempts(int) | 最大保留的重试次数。 | 3 |
setMaxBlockMs(long) | 发送阻塞最大等待时间(毫秒)。 | 0(不阻塞) |