如果在超时时间段内,消费组没有收到心跳,消费者将被删除。使用ConsumerGroupHeartBeat接口向消费组发送心跳请求,确保消费者不被删除。
前提条件
您已完成以下操作:
开通日志服务。
初始化日志服务Python SDK。
参数说明
def heart_beat(self, project, logstore, consumer_group, consumer, shards=None):
请求参数
参数 | 类型 | 是否必填 | 说明 |
project | String | 是 | Project的名称。 |
logstore | String | 是 | Logstore的名称。 |
consumer_group | String | 是 | 消费组的名称,在Logstore下唯一。 |
consumer | String | 否 | 消费者名称。 |
shards | List | 否 | 消费者维持心跳的Shard ID列表,比如可同时为Shard 0和Shard 1维持心跳。 |
返回参数
请参见ConsumerGroupHeartBeat - 消费者发送心跳到服务端。
示例代码
from aliyun.log import LogClient
import os
# 本示例从环境变量中获取AccessKey ID和AccessKey Secret
access_key_id = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
access_key_secret = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# 日志服务的服务接入点
endpoint = "cn-hangzhou.log.aliyuncs.com"
client = LogClient(endpoint, access_key_id, access_key_secret)
# Project名称
project = "project-1"
# Logstore 名称
logstore = "logstore-1"
# consumer_group 名称
consumer_group = "consumer_group_test"
# shard的id列表
shards = [0, 1]
# 消费者名称
consumer = ''
try:
# 创建指定 Project 的 Consumer Group
response = client.heart_beat(project, logstore, consumer_group, consumer, shards=None)
response.log_print()
except Exception as e:
print(f"An error occurred while creating the consumer group: {e}")
示例返回结果
ListHeartBeat:
headers: {'Server': 'AliyunSLS', 'Content-Type': 'application/json', 'Content-Length': '5', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*', 'Date': 'Fri, 25 Oct 2024 02:46:56 GMT', 'x-log-time': '1729824416', 'x-log-requestid': '671B06A0EE24B0B90621558E'}
shards: [0, 1]
相关文档
消费日志API接口请参见:
ListConsumerGroup - 查询消费组
CreateConsumerGroup - 创建消费组
DeleteConsumerGroup - 删除消费组
UpdateConsumerGroup - 更新消费者组
GetCheckPoint - 获取指定消费组的消费点
ConsumerGroupUpdateCheckPoint - 更新消费进度
ConsumerGroupHeartBeat - 消费者发送心跳到服务端
更多示例代码,请参见Aliyun Log Python SDK on GitHub。