apache / apache/rocketmq-dashboard
[Studio][Feature] Expose the consumption switches of Apache consumer group settings
- Dominant language
- Java
- Stars
- 1.4k
- Forks
- 683
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 58
Description
1. Please describe the feature you are requesting.
The consumer group settings editor (`GET/POST /api/groups/{name}/settings`, introduced by #2512) exposes only `retryQueueNums` and `retryMaxTimes`. The broker `SubscriptionGroupConfig` also carries the consumption switches that operators routinely need:
- `consumeEnable` — pause/resume consumption for a group without deleting it;
- `consumeMessageOrderly` — switch a group between concurrent and orderly consumption;
- `consumeBroadcastEnable` — allow broadcast-mode subscribers.
The classic dashboard (the previous generation in this repository, `frontend-new/src/components/consumer/ConsumerConfigItem.jsx` on the `master` branch) edits all of these fields via `/consumer/createOrUpdate.do`. In Studio today they can only be changed with external tooling such as `mqadmin updateSubGroup`.
2. Provide any additional detail on your proposed use case for this feature.
During an incident an operator needs to stop a misbehaving group from consuming further (disable `consumeEnable`), or flip a group to orderly consumption after introducing ordered delivery, directly from the dashboard. The existing settings endpoint already reads the effective broker config, updates every master broker, preserves unrelated fields, and writes an audit record; extending it with the three switches keeps that exact contract.
Cloud instances remain unsupported for this editor, matching the current `requireApacheInstance` scope of the settings endpoints. Omitted fields in the update payload should preserve the current broker values.
3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have).
should-have. Workaround today is running `mqadmin updateSubGroup` manually against every broker.
4. Expected behavior / acceptance criteria
- `GET /api/groups/{name}/settings` returns `consumeEnable`, `consumeMessageOrderly` and `consumeBroadcastEnable` as read from the effective broker `SubscriptionGroupConfig`.
- `POST /api/groups/settings` accepts the three switches as optional booleans; an omitted switch preserves the current broker value (the endpoint's existing partial-update contract), and the update still targets every master broker while preserving unrelated fields and writing an audit record.
- The consumer detail modal's settings tab renders the three switches initialized from the GET response, and the save payload includes them.
- Cloud instances remain unsupported for this editor (unchanged `requireApacheInstance` gate).
All of the above are covered by the tests listed in the PR.
5. Related PR
- #3991 (`feat(consumer): manage consumption switches in group settings`) implements this request.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the consumer group settings endpoints and the broker SubscriptionGroupConfig, then inspect frontend-new/src/components/consumer/ConsumerConfigItem.jsx and the consumer detail modal's settings tab. Run the tests listed in PR #3991. Done means the three switches are read, optionally updated across master brokers, preserved when omitted, shown in the modal, audited, and still gated from cloud instances.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, javascript
- Domain
- api, backend, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 20/100