iloveeyjafjalla opened a new issue, #7032:
URL: https://github.com/apache/rocketmq-dashboard/issues/7032
## Summary
Every Tencent topic consumer is reported with `consumeType: null` — in the
console's topic detail table and in the AI `rmq.topic.detail` consumer block —
even though the row's `messageModel` beside it says `CLUSTERING`.
## Why
- Tencent's `SubscriptionData.ConsumeType` is the **consumption mechanism**
(`PUSH` / `PULL` / `POP`, per the pinned SDK), not the subscription model; the
model is `MessageModel` (`CLUSTERING` / `BROADCASTING`).
- `TencentInstanceProvider.toTopicConsumer` passes both to
`toConsumeType(consumeType, messageModel)`
(`server/src/main/java/org/apache/rocketmq/studio/provider/tencent/TencentInstanceProvider.java:1018-1031`),
and the helper prefers the first argument and only recognises strings
containing `BROADCAST`/`CLUSTER` (`:1158-1170`). Real vendor values therefore
map to `null`.
- The Apache and Aliyun conversions derive the same contract field from the
message model, so only the Tencent rows are empty.
## Impact
The 消费模式 column and every AI consumer projection for a Tencent topic lose
the clustering/broadcasting distinction; `rmq.topic.detail` returns
`consumeType: null` for all of them, and a client comparing consumers across
vendors sees one vendor disagree with the contract (`docs/api-spec.md:1039`).
## Reproduction
`TencentInstanceProviderTest` →
`getTopicConsumersShouldDeriveTheSubscriptionModelFromTheMessageModelTest`
stubs a subscription with `ConsumeType("PUSH")` and
`MessageModel("CLUSTERING")`:
```
expected: CLUSTERING
but was: null
```
## Expected
`consumeType` follows `MessageModel` (with the mechanism only as a
fallback), matching the Apache and Aliyun conversions.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]