DELETE リクエストを送信して、メッセージが正常に処理されたことを確認します。確認後、ApsaraMQ for RocketMQ はコンシューマーグループへのメッセージの再配信を停止します。
リクエストボディは複数の ReceiptHandle 要素を受け入れ、1 回のリクエストでメッセージのバッチを確認できます。各メッセージの ReceiptHandle は、メッセージの消費操作から取得します。
リクエスト構文
DELETE /topics/<TopicName>/messages?ns=<INSTANCE_ID>&consumer=<GID> HTTP/1.1リクエストパラメーター
URI パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
TopicName | はい | メッセージの送信先トピックの名前。 |
ns | いいえ | インスタンス ID。名前空間を持つインスタンスに必須です。 |
consumer | はい | コンシューマーグループのグループ ID。 |
ns パラメーターについて
ApsaraMQ for RocketMQ には 2 種類のインスタンスがあります:
デフォルトインスタンス:名前空間がありません。デフォルトインスタンス内のすべてのリソース名は、グローバルに一意である必要があります。
nsパラメーターは不要です。新しいインスタンス:名前空間があります。リソース名はインスタンス内で一意であれば問題ありません。
nsパラメーターは必須です。
インスタンスに名前空間があるかどうかを確認するには、ApsaraMQ for RocketMQ コンソールの [インスタンス] ページに移動します。詳細については、「インスタンスの使用」をご参照ください。
リクエストボディ (XML)
<?xml version="1.0" encoding="UTF-8"?>
<ReceiptHandles xmlns="http://mq.aliyuncs.com/doc/v1/">
<ReceiptHandle>receipt-handle-1</ReceiptHandle>
<ReceiptHandle>receipt-handle-2</ReceiptHandle>
</ReceiptHandles>| パラメーター | 必須 | 説明 |
|---|---|---|
ReceiptHandle | はい | メッセージの消費操作によって返されるメッセージハンドル。メッセージが正常に消費されたかどうかを検証するために使用されます。メッセージごとに 1 つの <ReceiptHandle> 要素を含めます。 |
受信ハンドルの制約:
1 回限りの使用:各受信ハンドルは 1 回しか使用できません。確認が成功すると、ハンドルは無効化されます。
配信ごとに一意:同じメッセージの各配信 (消費リトライによる再配信を含む) は、異なる受信ハンドルを生成します。常に最新のハンドルを使用してください。
時間制限:受信ハンドルは、消費操作によって返される
NextConsumeTimeで期限切れになります。この期限までに確認を送信しないと、MessageNotExistエラーが返されます。
レスポンス
成功
HTTP/1.1 204レスポンスボディは返されません。
失敗
HTTP/1.1 404レスポンスボディには XML エラーが含まれています。詳細については、「エラーコード」をご参照ください。
エラーコード
| エラーコード | HTTP ステータス | 説明 |
|---|---|---|
MissingReceiptHandle | 404 | リクエストボディに ReceiptHandle 要素が含まれていません。少なくとも 1 つの受信ハンドルを含めてください。 |
ReceiptHandleError | 404 | 受信ハンドルの形式が不正か、無効です。消費操作によって返されたハンドルの値を確認してください。 |
MessageNotExist | 404 | 受信ハンドルの有効期限が切れています。これは、NextConsumeTime の後に確認が送信された場合に発生します。メッセージを再度消費して、新しい受信ハンドルを取得してください。 |
例
リクエスト例
DELETE /topics/MyTopic/messages?ns=MQ_INST_1234567890&consumer=GID_test_consumer HTTP/1.1<?xml version="1.0" encoding="UTF-8"?>
<ReceiptHandles xmlns="http://mq.aliyuncs.com/doc/v1/">
<ReceiptHandle>1E057D5E6EAD42A57993704EC383****-MTI5NT****</ReceiptHandle>
<ReceiptHandle>1E057D5E6EAD42A57993704EC383****-MTI5NT****</ReceiptHandle>
<ReceiptHandle>1E057D5E6EAD42A57993704EC383****-MTI5NT****</ReceiptHandle>
</ReceiptHandles>成功レスポンス例
HTTP/1.1 204エラーレスポンス例
受信ハンドルが見つからない場合
<?xml version="1.0"?>
<Error xmlns="http://mq.aliyuncs.com/doc/v1">
<Code>MissingReceiptHandle</Code>
<Message>ReceiptHandle is required.</Message>
<RequestId>5DAEF2B9463541AD6E04490F</RequestId>
<HostId>http://123.mqrest.cn-hangzhou.aliyuncs.com</HostId>
</Error>無効な受信ハンドル
受信ハンドルの値 (adfadfadf in this example) が無効な場合に返されるエラー:
<?xml version="1.0"?>
<Errors xmlns="http://mq.aliyuncs.com/doc/v1">
<Error>
<ErrorCode>ReceiptHandleError</ErrorCode>
<ErrorMessage>The receipt handle you provide is not valid.</ErrorMessage>
<ReceiptHandle>adfadfadf</ReceiptHandle>
</Error>
</Errors>期限切れの受信ハンドル
NextConsumeTime の後に確認が送信された場合に返されるエラー:
<?xml version="1.0"?>
<Errors xmlns="http://mq.aliyuncs.com/doc/v1">
<Error>
<ErrorCode>MessageNotExist</ErrorCode>
<ErrorMessage>The receipt handle you provided has expired.</ErrorMessage>
<ReceiptHandle>1E057D5E6EAD42A57993704EC383****-MTI5NT****</ReceiptHandle>
</Error>
</Errors>