diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/processor/DefaultMessagingProcessor.java b/proxy/src/main/java/org/apache/rocketmq/proxy/processor/DefaultMessagingProcessor.java index 1b3f0af4ea..188cb7b9bd 100644 --- a/proxy/src/main/java/org/apache/rocketmq/proxy/processor/DefaultMessagingProcessor.java +++ b/proxy/src/main/java/org/apache/rocketmq/proxy/processor/DefaultMessagingProcessor.java @@ -235,13 +235,23 @@ public class DefaultMessagingProcessor extends AbstractStartAndShutdown implemen @Override public CompletableFuture request(ProxyContext ctx, String brokerName, RemotingCommand request, long timeoutMillis) { - return this.requestBrokerProcessor.request(ctx, brokerName, request, timeoutMillis); + int originalRequestOpaque = request.getOpaque(); + request.setOpaque(RemotingCommand.createNewRequestId()); + return this.requestBrokerProcessor.request(ctx, brokerName, request, timeoutMillis).thenApply(r -> { + request.setOpaque(originalRequestOpaque); + return r; + }); } @Override public CompletableFuture requestOneway(ProxyContext ctx, String brokerName, RemotingCommand request, long timeoutMillis) { - return this.requestBrokerProcessor.requestOneway(ctx, brokerName, request, timeoutMillis); + int originalRequestOpaque = request.getOpaque(); + request.setOpaque(RemotingCommand.createNewRequestId()); + return this.requestBrokerProcessor.requestOneway(ctx, brokerName, request, timeoutMillis).thenApply(r -> { + request.setOpaque(originalRequestOpaque); + return r; + }); } @Override