qianye1001 opened a new issue, #10924:
URL: https://github.com/apache/rocketmq/issues/10924

   ### Before Creating the Bug Report
   
   - [x] I found a bug, not just a question.
   - [x] I searched existing RocketMQ issues and pull requests and found no 
duplicate.
   - [x] I confirmed the affected code belongs to this repository.
   
   ### Runtime platform environment
   
   Any environment using RocketMQ Proxy's gRPC v2 producer path.
   
   ### RocketMQ version
   
   Current `develop` branch (`7eee0fc366`).
   
   ### JDK Version
   
   JDK 8.
   
   ### Describe the Bug
   
   `SendMessageActivity.SendMessageQueueSelector` only reads `messageGroup` 
when a gRPC `SendMessageRequest` contains exactly one message.
   
   For a FIFO batch, the selector therefore ignores the shared message group 
and falls back to the normal fault-aware queue-selection pipeline. Consecutive 
batches for the same FIFO message group may be sent to different queues, so 
their order is not preserved.
   
   The lower Proxy client already supports encoding a message list as one 
`MessageBatch` and sending one `SEND_BATCH_MESSAGE` request. The missing pieces 
are FIFO-aware queue selection and batch-level validation at the gRPC boundary.
   
   ### Steps to Reproduce
   
   1. Send multiple gRPC FIFO `SendMessageRequest` batches.
   2. Put at least two messages in every request.
   3. Use the same non-empty `messageGroup` for every message and every batch.
   4. Observe queue selection across requests.
   
   ### What Did You Expect to See?
   
   - All FIFO batches with the same message group select the same queue.
   - Every request is encoded and sent to the Broker as one batch request.
   - A batch is rejected unless its messages have a supported, consistent type, 
body encoding, and FIFO message group.
   - The encoded batch observes the Proxy message-size limit and a bounded 
message-count limit.
   - The gRPC response contains one result entry per input message.
   
   ### What Did You See Instead?
   
   The queue selector discards the FIFO message group whenever the request 
contains more than one message, allowing consecutive batches in the same 
logical FIFO stream to select different queues.
   
   ### Proposed Scope
   
   Update the gRPC producer path to:
   
   - select the queue using the FIFO message group for batch requests;
   - validate batch type, encoding, FIFO group, encoded size, and message count;
   - keep one `SEND_BATCH_MESSAGE` request to the Broker;
   - expand the Broker batch result into ordered per-message gRPC result 
entries;
   - add focused activity and protocol-level regression tests.
   


-- 
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]

Reply via email to