RockteMQ-AI commented on issue #10654: URL: https://github.com/apache/rocketmq/issues/10654#issuecomment-5058201552
**Issue Evaluation** Category: `type/enhancement` | Status: **Evaluated — Feasible** This enhancement is feasible and well-scoped. The gRPC Java client SDK (`rocketmq-client-java`) is already version-managed in the root `pom.xml` but not yet a dependency of the `example` module. Adding gRPC benchmark classes is straightforward. **Scope:** - `example/pom.xml` — add `rocketmq-client-java` dependency - New `GrpcProducer.java`, `GrpcConsumer.java` in `example/.../benchmark/` - New `grpcproducer.sh`, `grpcconsumer.sh` in `distribution/benchmark/` - `distribution/benchmark/shutdown.sh` — add cases for new process names **Key Design Note:** The gRPC client API differs fundamentally from the Remoting-based client (different entry points, message types, async patterns, and ack model). **Recommendation: create parallel benchmark classes** (mirrors existing pattern where `BatchProducer` and `TransactionProducer` are independent classes), rather than an abstraction layer. **Compatibility:** No breaking changes — all additions, existing Remoting benchmarks untouched. **Stats reuse:** `StatsBenchmarkProducer`/`StatsBenchmarkConsumer` inner classes use `LongAdder`/`AtomicLong` with no client-specific dependencies — can be reused directly. **Shutdown:** The gRPC client supports graceful disconnect via `NotifyClientTermination` RPC. New classes should register `Runtime.getRuntime().addShutdownHook(...)` for proper cleanup. --- *Automated evaluation by github-manager-bot* -- 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]
