Consulta mensagens publicadas em um tópico especificado dentro de um intervalo de tempo definido, com resultados paginados.
Observação
Se você desconhecer o ID ou a chave da mensagem desejada, use esta operação para buscar todas as mensagens publicadas em um tópico durante um período específico. Os resultados são exibidos por página.
-
Recomendamos definir um intervalo de tempo curto para a consulta. Intervalos muito longos retornam grande volume de mensagens e aumentam o tempo necessário para localizar o item desejado. Siga os passos abaixo para consultar mensagens:
1. Especifique os parâmetros Topic, BeginTime, EndTime e PageSize para obter informações sobre as mensagens no tópico indicado. Por padrão, a resposta inclui os dados da primeira página, o total de páginas e o ID da tarefa.
2. Informe o ID da tarefa e o número da página para chamar esta operação novamente e recuperar as mensagens da página desejada. Nessa etapa, os parâmetros BeginTime, EndTime e PageSize são ignorados; o sistema utiliza os valores definidos na requisição original que criou a tarefa de consulta.
Limite de requisições
Cada conta Alibaba Cloud pode invocar esta operação até 10 vezes por minuto. Se a quantidade de requisições atingir esse limite dentro de um minuto, novas chamadas falharão, o que pode interromper seus serviços. Para mais detalhes sobre os limites de cada operação, consulte Limites de requisições de API.
Autorização
Contas Alibaba Cloud têm permissão nativa para executar esta operação. Usuários do Resource Access Management (RAM) precisam receber as permissões adequadas antes de utilizá-la. A tabela a seguir lista as permissões necessárias para usuários RAM. Para saber como conceder acesso, consulte Políticas.
|
API |
Action |
Resource em instância com namespace |
Resource em instância sem namespace |
|
OnsMessagePageQueryByTopic |
mq:QueryInstanceBaseInfo mq:QueryMessage |
acs:mq:::{instanceId}%{topic} |
acs:mq:::{topic} |
Parâmetros da requisição
|
Parâmetro |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
Action |
String |
Sim |
OnsMessagePageQueryByTopic |
Operação a ser executada. Defina o valor como OnsMessagePageQueryByTopic. |
|
Topic |
String |
Sim |
test-mq_topic |
Tópico onde as mensagens alvo da consulta estão armazenadas. |
|
BeginTime |
Long |
Sim |
1570723200000 |
Início do intervalo de tempo da consulta. O valor é um timestamp UNIX que representa os milissegundos decorridos desde a época (1º de janeiro de 1970, 00:00:00 UTC). Caso um valor válido seja fornecido para o parâmetro TaskId, este campo será ignorado e o sistema usará o BeginTime definido na criação da tarefa de consulta. |
|
EndTime |
Long |
Sim |
1570809600000 |
Fim do intervalo de tempo da consulta. O valor é um timestamp UNIX que representa os milissegundos decorridos desde a época (1º de janeiro de 1970, 00:00:00 UTC). Se o parâmetro TaskId tiver um valor válido na requisição, este campo não terá efeito, prevalecendo o EndTime informado ao criar a tarefa. |
|
TaskId |
String |
Não |
0BC1310300002A9F000021E4D7A48346 |
ID da tarefa de consulta. Este parâmetro é opcional na primeira chamada para buscar mensagens de um tópico em determinado período, mas torna-se obrigatório nas chamadas subsequentes para paginar os resultados. O ID pode ser obtido no retorno da primeira requisição. |
|
CurrentPage |
Integer |
Sim |
2 |
Número da página a ser retornada. A contagem começa em 1. Valores válidos: 1 a 50. |
|
PageSize |
Integer |
Não |
5 |
Quantidade de registros por página. Valores válidos: 5 a 50. Valor padrão: 20. Quando um valor válido é atribuído ao parâmetro TaskId, esta configuração é desconsiderada e o sistema aplica o PageSize definido na requisição inicial da tarefa. |
|
InstanceId |
String |
Sim |
MQ_INST_111111111111_DOxxxxxx |
ID da instância do Message Queue for Apache RocketMQ que contém o tópico. |
Para mais informações sobre os parâmetros de requisição, consulte
e
.
Parâmetros de resposta
| Parâmetro | Tipo | Exemplo | Descrição |
| RequestId | String | 5DC2A47E-2B31-4722-96C8-FA59C9***** | ID da requisição. O sistema gera um identificador único para cada solicitação, permitindo seu uso na solução de problemas. |
| MsgFoundDo | Object | Dados retornados pela consulta. | |
| CurrentPage | Long | 1 | Número da página atual nos resultados. |
| MsgFoundList | Array of OnsRestMessageDo | Lista de mensagens da página retornada. As informações aqui contidas seguem o mesmo formato da operação OnsMessageGetByMsgId. | |
| OnsRestMessageDo | |||
| StoreSize | Integer | 406 | Tamanho da mensagem. Unidade: KB. |
| ReconsumeTimes | Integer | 1 | Quantidade de tentativas de reconsumo da mensagem. |
| StoreTimestamp | Long | 1570760999811 | Momento em que a mensagem foi armazenada no broker do Message Queue for Apache RocketMQ. Representado como timestamp UNIX em milissegundos desde a época (1º de janeiro de 1970, 00:00:00 UTC). |
| InstanceId | String | MQ_INST_111111111111_DOxxxxxx | Identificador da instância. |
| MsgId | String | 1E0578FE110F18B4AAC235C05F2***** | Identificador único da mensagem. |
| StoreHost | String | 11.193.***.***:10911 | Servidor do Message Queue for Apache RocketMQ responsável pelo armazenamento da mensagem. |
| Topic | String | test-mq_topic | Tópico onde a mensagem está armazenada. |
| PropertyList | Array of MessageProperty | Propriedades associadas à mensagem. | |
| MessageProperty | |||
| Value | String | TagA | Valor da propriedade. |
| Name | String | TAGS | Nome da propriedade. Valores válidos:
Para detalhes sobre a terminologia do Message Queue for Apache RocketMQ, consulte Termos. |
| BornTimestamp | Long | 1570760999721 | Momento de geração da mensagem. Valor em timestamp UNIX (milissegundos desde 1º de janeiro de 1970, 00:00:00 UTC). |
| BodyCRC | Integer | 914112295 | Valor de verificação cíclica de redundância (CRC) do corpo da mensagem. |
| BornHost | String | 42.120.***.***:59270 | Cliente produtor que originou a mensagem. |
| MaxPageCount | Long | 400 | Total de páginas disponíveis nos resultados. |
| TaskId | String | 0BC1310300002A9F000021E4D7A48346 | ID da tarefa de consulta. Retornado na primeira invocação desta operação para um dado intervalo de tempo e tópico, permitindo sua reutilização para navegar pelas demais páginas de resultado. |
Exemplos
Exemplo de requisição
http(s)://ons.cn-hangzhou.aliyuncs.com/?Action=OnsMessagePageQueryByTopic
&BeginTime=1570723200000
&CurrentPage=2
&EndTime=1570809600000
&InstanceId=MQ_INST_111111111111_DOxxxxxx
&Topic=test-mq_topic
&<Common request parameters>
Exemplo de resposta de sucesso
Formato XML
HTTP/1.1 200 OK
Content-Type:application/xml
<OnsMessagePageQueryByTopicResponse>
<MsgFoundDo>
<MaxPageCount>400</MaxPageCount>
<MsgFoundList>
<OnsRestMessageDo>
<MsgId>1E0578FE110F18B4AAC235C05F2*****</MsgId>
<InstanceId>MQ_INST_111111111111_DOxxxxxx</InstanceId>
<ReconsumeTimes>1</ReconsumeTimes>
<BornHost>42.120.***.***:59270</BornHost>
<StoreTimestamp>1570760999811</StoreTimestamp>
<StoreHost>11.193.***.***:10911</StoreHost>
<BodyCRC>914112295</BodyCRC>
<Topic>test-mq_topic</Topic>
<BornTimestamp>1570760999721</BornTimestamp>
<StoreSize>406</StoreSize>
<PropertyList>
<MessageProperty>
<Name>TAGS</Name>
<Value>TagA</Value>
</MessageProperty>
</PropertyList>
</OnsRestMessageDo>
</MsgFoundList>
<TaskId>0BC1310300002A9F000021E4D7A48346</TaskId>
<CurrentPage>1</CurrentPage>
</MsgFoundDo>
<RequestId>5DC2A47E-2B31-4722-96C8-FA59C9*****</RequestId>
</OnsMessagePageQueryByTopicResponse>
Formato JSON
HTTP/1.1 200 OK
Content-Type:application/json
{
"MsgFoundDo" : {
"MaxPageCount" : 400,
"MsgFoundList" : {
"OnsRestMessageDo" : [ {
"MsgId" : "1E0578FE110F18B4AAC235C05F2*****",
"ReconsumeTimes" : 1,
"BornHost" : "42.120.***.***:59270",
"StoreTimestamp" : 1570760999811,
"StoreHost" : "11.193.***.***:10911",
"BodyCRC" : 914112295,
"Topic" : "test-mq_topic",
"BornTimestamp" : 1570760999721,
"StoreSize" : 406,
"PropertyList" : {
"MessageProperty" : [ {
"Name" : "TAGS",
"Value" : "TagA"
} ]
}
} ]
},
"TaskId" : "0BC1310300002A9F000021E4D7A48346",
"CurrentPage" : 1
},
"RequestId" : "5DC2A47E-2B31-4722-96C8-FA59C9*****"
}
Códigos de erro
Para obter uma lista dos códigos de erro, acesse o Centro de Erros de API.
Visualize informações de mensagens no console
No Message Queue for Apache RocketMQ console, é possível visualizar os detalhes de uma mensagem. Para mais informações, consulte Consultar uma mensagem.