[ISSUE #3949] Add README

This commit is contained in:
zhouxiang
2022-07-13 11:32:56 +08:00
parent e3296b8d2c
commit 374b0686a0
5 changed files with 73 additions and 9 deletions
+2 -2
View File
@@ -33,8 +33,8 @@
- [Cluster Deployment](dledger/deploy_guide.md):introduce how to deploy Dledger in cluster.
- [GRPC Proxy Deployment](proxy/deploy_guide.md)
Introduce how to deploy gRPC proxy (both `Local` mode and `Cluster` mode).
- [Proxy Deployment](proxy/deploy_guide.md)
Introduce how to deploy proxy (both `Local` mode and `Cluster` mode).
### 5. Operation and maintenance management
- [Operation](operation.md):introduce RocketMQ's deployment modes that including single-master mode, multi-master mode, multi-master multi-slave mode and so on, as well as the usage of operation tool mqadmin.
Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

+12 -7
View File
@@ -1,32 +1,37 @@
# RocketMQ Proxy Deployment Guide
## Overview
RocketMQ Proxy supports two deployment modes, `Local` mode and `Cluster` mode.
With `Local` mode, `Proxy` deployed with `Broker` in the same process with inter-process communication.
While `Cluster` mode, `Proxy` is a single cluster who communicate `Broker` with remote procedure call. In this way, `Proxy` acts as a stateless computing components while `Broker` is a stateful components with local storage. This form of deployment makes RocketMQ an architecture of separation of computing and storage.
RocketMQ Proxy supports two deployment modes, `Local` mode and `Cluster` mode.
## Configuration
The configuration applies to both the `Cluster` mode and `Local` mode, whose default path is distribution/conf/rmq-proxy.json directory.
The configuration applies to both the `Cluster` mode and `Local` mode, whose default path is
distribution/conf/rmq-proxy.json directory.
## `Cluster` mode
* Set configuration field `nameSrvAddr`.
* Set configuration field `proxyMode` to `cluster` (case insensitive).
Run the command below.
```shell
nohup sh mqproxy &
```
The command will only run `Proxy` itself. It requires `Namesrv` and `Broker` components running.
## `Local` mode
* Set configuration field `nameSrvAddr`.
* Set configuration field `proxyMode` to `local` (case insensitive).
Run the command below.
```shell
nohup sh mqproxy &
```
The command will not only run `Proxy`, but also run `Broker`. It requires `Namesrv` only and there's no need for extra `Broker`.
The command will not only run `Proxy`, but also run `Broker`. It requires `Namesrv` only and there's no need for
extra `Broker`.
+59
View File
@@ -0,0 +1,59 @@
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 now and all the message types including `normal`
, `fifo`, `transaction` and `delay` are supported via `pop`. `Proxy` will translate incoming traffic into
customized `Remoting` protocol to access `Broker` or `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. See [rocketmq-clients](https://github.com/apache/rocketmq-clients) for more information.
### Multi-protocol support.
With `Proxy` 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.
![](../docs/en/images/rocketmq_proxy_cluster_mode.png)
### `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.
![](../docs/en/images/rocketmq_proxy_local_mode.png)
## Deploy guide
See [Proxy Deployment](../docs/en/proxy/deploy_guide.md)
## Related
* [rocketmq-apis](https://github.com/apache/rocketmq-apis): Common communication protocol between server and client.
* [rocketmq-clients](https://github.com/apache/rocketmq-clients): Collection of Polyglot Clients for Apache RocketMQ.
* [RIP-37: New and Unified APIs](https://shimo.im/docs/m5kv92OeRRU8olqX): RocketMQ proposal of new and unified APIs
crossing different languages.
* [RIP-39: Support gRPC protocol](https://shimo.im/docs/gXqmeEPYgdUw5bqo): RocketMQ proposal of gRPC protocol support.