apache / apache/rocketmq-dashboard

[Studio][Feature] Expose the consumption switches of Apache consumer group settings

Open
#3,990 1 comment 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.