ITADN
apache/rocketmq
apache/rocketmq · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Apache RocketMQ

Build Status CodeCov Maven Central Release License Average Time to Resolve An Issue Percentage of Issues Still Open Twitter Follow

Apache RocketMQ 是一个低延迟、高性能、高可靠、具备万亿级容量和灵活可扩展性的分布式消息与流处理平台。

它提供了多种功能:

  • 消息模式,包括发布/订阅、请求/回复和流式传输
  • 金融级事务消息
  • 基于 DLedger Controller 的内置容错和高可用配置选项
  • 内置消息追踪功能,同时支持 opentracing
  • 多样化的大数据和流式生态系统集成
  • 按时间或偏移量回溯消息
  • 同一队列中可靠的 FIFO 和严格有序消息
  • 高效的拉取和推送消费模型
  • 单队列百万级消息堆积能力
  • 多种消息协议,如 gRPC、MQTT、JMS 和 OpenMessaging
  • 灵活的分布式横向扩展部署架构
  • 极速批量消息交换系统
  • 多种消息过滤机制,如 SQL 和 Tag
  • 用于隔离测试和云隔离集群的 Docker 镜像
  • 功能丰富的管理仪表板,用于配置、指标和监控
  • 认证和授权
  • 免费开源连接器,支持源和汇
  • 轻量级实时计算

快速入门

本段将指导您通过不同方式安装 RocketMQ。 对于本地开发和测试,每个组件仅会创建一个实例。

在本地运行 RocketMQ

RocketMQ 可在所有主流操作系统上运行,且仅需安装 Java JDK 8 或更高版本。 要进行检查,请运行 java -version

$ java -version
java version "1.8.0_121"

对于 Windows 用户,点击此处]下载 5.5.0 RocketMQ 二进制发行版, 将其解压到本地磁盘,例如 D:\rocketmq。 对于 macOS 和 Linux 用户,执行以下命令:

# Download release from the Apache mirror
$ wget https://dist.apache.org/repos/dist/release/rocketmq/5.5.0/rocketmq-all-5.5.0-bin-release.zip

# Unpack the release
$ unzip rocketmq-all-5.5.0-bin-release.zip

准备一个终端并切换到已解压的 bin 目录:

$ cd rocketmq-all-5.5.0-bin-release/bin

1) 启动 NameServer

NameServer 将监听 0.0.0.0:9876,请确保本地机器上该端口未被其他进程占用,然后执行以下操作。

对于 macOS 和 Linux 用户:

### start Name Server
$ nohup sh mqnamesrv &

### check whether Name Server is successfully started
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

对于 Windows 用户,您需要先设置环境变量:

  • 在桌面上,右键单击“计算机”图标。
  • 从上下文菜单中选择“属性”。
  • 单击“高级系统设置”链接。
  • 单击“环境变量”。
  • 添加环境变量 ROCKETMQ_HOME="D:\rocketmq"

然后切换到 rocketmq 目录,输入并运行:

$ mqnamesrv.cmd
The Name Server boot success...

2) 启动 Broker

适用于 macOS 和 Linux 用户:

### start Broker
$ nohup sh mqbroker -n localhost:9876 &

### check whether Broker is successfully started, eg: Broker's IP is 192.168.1.2, Broker's name is broker-a
$ tail -f ~/logs/rocketmqlogs/broker.log
The broker[broker-a, 192.168.1.2:10911] boot success...

对于 Windows 用户:

$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.168.1.2:10911] boot success...

在 Docker 中运行 RocketMQ

您可以在自己的机器上通过 Docker 容器运行 RocketMQ, host 网络将用于暴露容器中的监听端口。

1) 启动 NameServer

$ docker run -it --net=host apache/rocketmq ./mqnamesrv

2) 启动 Broker

$ docker run -it --net=host --mount type=bind,source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876

在 Kubernetes 中运行 RocketMQ

您也可以使用 RocketMQ Operator 在 Kubernetes 集群中运行 RocketMQ 集群。 在执行操作之前,请确保 kubectl 及相关 kubeconfig 文件已安装在您的机器上。

1) 安装 CRDs

### install CRDs
$ git clone https://github.com/apache/rocketmq-operator
$ cd rocketmq-operator && make deploy

### check whether CRDs are successfully installed
$ kubectl get crd | grep rocketmq.apache.org
brokers.rocketmq.apache.org                 2022-05-12T09:23:18Z
consoles.rocketmq.apache.org                2022-05-12T09:23:19Z
nameservices.rocketmq.apache.org            2022-05-12T09:23:18Z
topictransfers.rocketmq.apache.org          2022-05-12T09:23:19Z

### check whether operator is running
$ kubectl get pods | grep rocketmq-operator
rocketmq-operator-6f65c77c49-8hwmj   1/1     Running   0          93s

2) 创建集群实例

### create RocketMQ cluster resource
$ cd example && kubectl create -f rocketmq_v1alpha1_rocketmq_cluster.yaml

### check whether cluster resources are running
$ kubectl get sts
NAME                 READY   AGE
broker-0-master      1/1     107m
broker-0-replica-1   1/1     107m
name-service         1/1     107m

Apache RocketMQ 社区


学习 & 联系我们


贡献

我们随时欢迎新的贡献,无论是琐碎的清理工作、大型新功能 还是其他物质奖励,更多详情请参见此处


许可证

Apache 许可证,第 2.0 版 版权所有 (C) Apache 软件基金会


出口管制声明

本发行版包含加密软件。您目前居住的国家可能对加密软件的进口、持有、使用和/或再出口至其他国家 存在限制。 在使用任何加密软件之前,请查阅您所在国家关于加密软件进口、持有、使用及再出口的法律、法规和政策, 以确认是否被允许。有关更多信息,请参阅 http://www.wassenaar.org/

美国商务部工业与安全局(BIS)已将此软件归类为出口商品控制编号(ECCN)5D002.C.1,该类别包括 使用或执行非对称算法加密功能的信息安全软件。本 Apache 软件基金会发行版的形态和方式使其符合在许可例外 ENC 技术 软件不受限制(TSU)例外(参见 BIS 出口管理条例,第 740.13 节)下出口的条件, 适用于目标代码和源代码。

以下提供了有关所包含加密软件的更多详细信息:

本软件使用 Apache Commons Crypto (https://commons.apache.org/proper/commons-crypto/) 来 支持身份验证,以及对在服务之间通过网络发送的数据进行加密和解密。