如果在逾時時間段內,消費組沒有收到心跳,消費者將被刪除。使用ConsumerGroupHeartBeat介面向消費組發送心跳請求,確保消費者不被刪除。
前提條件
您已完成以下操作:
參數說明
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維持心跳。 |
返回參數
範例程式碼
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', '')
# Log Service的服務存取點
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]