Skip to content

[Feature] Support Lite Simple Consumer on server side #10569

Description

@f1amingo

Is Your Feature Request Related to a Problem?

Currently, RocketMQ Lite Topic only supports the Lite Push Consumer model. However, some use cases require a pull-based consumption pattern (Simple Consumer) for Lite Topics, which is not yet supported on the server side.

Describe the Solution You Would Like

Add server-side support for Lite Simple Consumer, including:

  1. Broker: Extend NotificationProcessor with a dedicated PopLiteLongPollingService so lite consumers can use the notification (long-polling) protocol. LiteEventDispatcher now also wakes up the notification-side polling service, and exposes a hasEvents(clientId) API for message-availability checks.
  2. Proxy: Unify the lite and normal pop-message paths into a single popMessage call, routing internally based on ProxyContext.isLiteConsumer(). Register LITE_SIMPLE_CONSUMER in all client lifecycle switch statements (ClientActivity, GrpcClientSettingsManager). Pass lite-topic property only for lite consumers.
  3. Remoting: Add isLiteConsumer and clientId fields to NotificationRequestHeader so the broker can distinguish lite consumer notification requests.

Describe Alternatives You Have Considered

Keeping a separate popLiteMessage API in the proxy layer, but this duplicates code paths and increases maintenance cost.

Additional Context

This change is purely additive and backward-compatible — existing Pop/Push/Simple consumers are unaffected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions