Files
amos c0d23dbbe1
Some checks are pending
Build and Run Tests by Bazel / bazel-compile (ubuntu-latest) (push) Waiting to run
CodeQL Analysis / CodeQL-Build (push) Waiting to run
Coverage / calculate-coverage (push) Waiting to run
Run Integration Tests / maven-compile (ubuntu-latest, JDK-8) (push) Waiting to run
Build and Run Tests by Maven / maven-compile (macos-latest, JDK-8) (push) Waiting to run
Build and Run Tests by Maven / maven-compile (ubuntu-latest, JDK-8) (push) Waiting to run
Build and Run Tests by Maven / maven-compile (windows-latest, JDK-8) (push) Waiting to run
Misspell Check / misspell-check (push) Waiting to run
PUSH-CI / Build dist tar (push) Waiting to run
PUSH-CI / Docker images (ubuntu, 8) (push) Blocked by required conditions
PUSH-CI / List version (push) Blocked by required conditions
PUSH-CI / Deploy RocketMQ For E2E (push) Blocked by required conditions
PUSH-CI / Deploy RocketMQ For Benchmarking (push) Blocked by required conditions
PUSH-CI / Test E2E grpc java (push) Blocked by required conditions
PUSH-CI / Test E2E golang (push) Blocked by required conditions
PUSH-CI / Test E2E remoting java (push) Blocked by required conditions
PUSH-CI / Performance benchmark test (push) Blocked by required conditions
PUSH-CI / Clean E2E (push) Blocked by required conditions
PUSH-CI / Clean Benchmarking (push) Blocked by required conditions
upload source code
2025-05-21 14:41:59 +08:00
..
2025-05-21 14:41:59 +08:00
2025-05-21 14:41:59 +08:00
2025-05-21 14:41:59 +08:00
2025-05-21 14:41:59 +08:00

rocketmq-proxy

Introduction

RocketMQ Proxy is a stateless component that makes full use of the newly introduced pop consumption mechanism to achieve stateless consumption behavior. gRPC protocol is supported by Proxy now and all the message types including normal, fifo, transaction and delay are supported via pop consumption mode. Proxy will translate incoming traffic into customized Remoting protocol to access Broker and Namesrv.

Proxy also handles SSL, authorization/authentication and logging/tracing/metrics and is in charge of connection management and traffic governance.

Multi-language support.

gRPC combined with Protocol Buffer makes it easy to implement clients with both java and other programming languages while the server side doesn't need extra work to support different programming languages. See rocketmq-clients for more information.

Multi-protocol support.

With Proxy served as a traffic interface, it's convenient to implement multiple protocols upon proxy. gRPC protocol is implemented first and the customized Remoting protocol will be implemented later. HTTP/1.1 will also be taken into consideration.

Architecture

RocketMQ Proxy has two deployment modes: Cluster mode and Local mode. With both modes, Pop mode is natively supported in Proxy.

Cluster mode

While in Cluster mode, Proxy is an independent cluster that communicates with Broker with remote procedure call. In this scenario, Proxy acts as a stateless computing component while Broker is a stateful component with local storage. This form of deployment introduces the architecture of separation of computing and storage for RocketMQ.

Due to the separation of computing and storage, RocketMQ Proxy can be scaled out indefinitely in Cluster mode to handle traffic peak while Broker can focus on storage engine and high availability.

Local mode

Proxy in Local mode has more similarity with RocketMQ 4.x version, which is easily deployed or upgraded for current RocketMQ users. With Local mode, Proxy deployed with Broker in the same process with inter-process communication so the network overhead is reduced compared to Cluster mode.

Deploy guide

See Proxy Deployment