## Apache RocketMQ
[![Build Status][maven-build-image]][maven-build-url]
[![CodeCov][codecov-image]][codecov-url]
[![Maven Central][maven-central-image]][maven-central-url]
[![Release][release-image]][release-url]
[![License][license-image]][license-url]
[![Average Time to Resolve An Issue][percentage-of-issues-still-open-image]][pencentage-of-issues-still-open-url]
[![Percentage of Issues Still Open][average-time-to-resolve-an-issue-image]][average-time-to-resolve-an-issue-url]
[![Twitter Follow][twitter-follow-image]][twitter-follow-url]
**[Apache RocketMQ](https://rocketmq.apache.org) is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability.**
It offers a variety of features:
* Messaging patterns including publish/subscribe, request/reply and streaming
* Financial grade transactional message
* Built-in fault tolerance and high availability configuration options base on [DLedger Controller](docs/en/controller/quick_start.md)
* Built-in message tracing capability, also support opentracing
* Versatile big-data and streaming ecosystem integration
* Message retroactivity by time or offset
* Reliable FIFO and strict ordered messaging in the same queue
* Efficient pull and push consumption model
* Million-level message accumulation capacity in a single queue
* Multiple messaging protocols like gRPC, MQTT, JMS and OpenMessaging
* Flexible distributed scale-out deployment architecture
* Lightning-fast batch message exchange system
* Various message filter mechanics such as SQL and Tag
* Docker images for isolated testing and cloud isolated clusters
* Feature-rich administrative dashboard for configuration, metrics and monitoring
* Authentication and authorization
* Free open source connectors, for both sources and sinks
* Lightweight real-time computing
----------
## Quick Start
This paragraph guides you through steps of installing RocketMQ in different ways.
For local development and testing, only one instance will be created for each component.
### Run RocketMQ locally
RocketMQ runs on all major operating systems and requires only a Java JDK version 8 or higher to be installed.
To check, run `java -version`:
```shell
$ java -version
java version "1.8.0_121"
```
For Windows users, click [here](https://dist.apache.org/repos/dist/release/rocketmq/5.1.4/rocketmq-all-5.1.4-bin-release.zip) to download the 5.1.4 RocketMQ binary release,
unpack it to your local disk, such as `D:\rocketmq`.
For macOS and Linux users, execute following commands:
```shell
# Download release from the Apache mirror
$ wget https://dist.apache.org/repos/dist/release/rocketmq/5.1.4/rocketmq-all-5.1.4-bin-release.zip
# Unpack the release
$ unzip rocketmq-all-5.1.4-bin-release.zip
```
Prepare a terminal and change to the extracted `bin` directory:
```shell
$ cd rocketmq-all-5.1.4-bin-release/bin
```
**1) Start NameServer**
NameServer will be listening at `0.0.0.0:9876`, make sure that the port is not used by others on the local machine, and then do as follows.
For macOS and Linux users:
```shell
### start Name Server
$ nohup sh mqnamesrv &
### check whether Name Server is successfully started
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
```
For Windows users, you need set environment variables first:
- From the desktop, right click the Computer icon.
- Choose Properties from the context menu.
- Click the Advanced system settings link.
- Click Environment Variables.
- Add Environment `ROCKETMQ_HOME="D:\rocketmq"`.
Then change directory to rocketmq, type and run:
```shell
$ mqnamesrv.cmd
The Name Server boot success...
```
**2) Start Broker**
For macOS and Linux users:
```shell
### start Broker
$ nohup sh bin/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.169.1.2:10911] boot success...
```
For Windows users:
```shell
$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...
```
### Run RocketMQ in Docker
You can run RocketMQ on your own machine within Docker containers,
`host` network will be used to expose listening port in the container.
**1) Start NameServer**
```shell
$ docker run -it --net=host apache/rocketmq ./mqnamesrv
```
**2) Start Broker**
```shell
$ docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876
```
### Run RocketMQ in Kubernetes
You can also run a RocketMQ cluster within a Kubernetes cluster using [RocketMQ Operator](https://github.com/apache/rocketmq-operator).
Before your operations, make sure that `kubectl` and related kubeconfig file installed on your machine.
**1) Install CRDs**
```shell
### install CRDs
$ git clone https://github.com/apache/rocketmq-operator
$ cd rocketmq-operator && make deploy
### check whether CRDs is 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 Cluster Instance**
```shell
### create RocketMQ cluster resource
$ cd example && kubectl create -f rocketmq_v1alpha1_rocketmq_cluster.yaml
### check whether cluster resources is 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 Community
* [RocketMQ Streams](https://github.com/apache/rocketmq-streams): A lightweight stream computing engine based on Apache RocketMQ.
* [RocketMQ Flink](https://github.com/apache/rocketmq-flink): The Apache RocketMQ connector of Apache Flink that supports source and sink connector in data stream and Table.
* [RocketMQ APIs](https://github.com/apache/rocketmq-apis): RocketMQ protobuf protocol.
* [RocketMQ Clients](https://github.com/apache/rocketmq-clients): gRPC/protobuf-based RocketMQ clients.
* RocketMQ Remoting-based Clients
- [RocketMQ Client CPP](https://github.com/apache/rocketmq-client-cpp)
- [RocketMQ Client Go](https://github.com/apache/rocketmq-client-go)
- [RocketMQ Client Python](https://github.com/apache/rocketmq-client-python)
- [RocketMQ Client Nodejs](https://github.com/apache/rocketmq-client-nodejs)
* [RocketMQ Spring](https://github.com/apache/rocketmq-spring): A project which helps developers quickly integrate Apache RocketMQ with Spring Boot.
* [RocketMQ Exporter](https://github.com/apache/rocketmq-exporter): An Apache RocketMQ exporter for Prometheus.
* [RocketMQ Operator](https://github.com/apache/rocketmq-operator): Providing a way to run an Apache RocketMQ cluster on Kubernetes.
* [RocketMQ Docker](https://github.com/apache/rocketmq-docker): The Git repo of the Docker Image for Apache RocketMQ.
* [RocketMQ Dashboard](https://github.com/apache/rocketmq-dashboard): Operation and maintenance console of Apache RocketMQ.
* [RocketMQ Connect](https://github.com/apache/rocketmq-connect): A tool for scalably and reliably streaming data between Apache RocketMQ and other systems.
* [RocketMQ MQTT](https://github.com/apache/rocketmq-mqtt): A new MQTT protocol architecture model, based on which Apache RocketMQ can better support messages from terminals such as IoT devices and Mobile APP.
* [RocketMQ EventBridge](https://github.com/apache/rocketmq-eventbridge): EventBridge make it easier to build a event-driven application.
* [RocketMQ Incubating Community Projects](https://github.com/apache/rocketmq-externals): Icubator community projects of Apache RocketMQ, inclu
RocketMQ 5.2.0
需积分: 0 37 浏览量
更新于2024-02-29
1
收藏 86.61MB ZIP 举报
**正文**
Apache RocketMQ 是一款开源的分布式消息中间件,主要设计用于处理大规模实时数据传输。在5.2.0版本中,它提供了一系列优化和增强的功能,使其在高并发、低延迟、高可用性和可扩展性方面表现更加出色。本篇文章将详细探讨RocketMQ 5.2.0的核心知识点及其应用场景。
1. **分布式消息传递**
- **主题(Topic)与队列(Queue)**: RocketMQ 使用主题和队列的概念来组织消息。一个主题可以包含多个队列,每个队列存储一部分消息。这种设计允许消费者并行消费,提高处理速度。
- **发布/订阅模型**: 支持点对点(P2P)和发布/订阅两种模式,满足不同业务需求。
2. **高可用性**
- **Master-Slave架构**: RocketMQ 实现了主从复制,确保即使主节点故障,服务也能快速切换到备节点,保证消息不丢失。
- **Broker集群**: 多个Broker节点组成集群,提供容错和负载均衡能力。
- **消息持久化**: 支持消息持久化到磁盘,即使系统重启也能恢复未处理的消息。
3. **消息可靠性**
- **事务消息**: 提供事务消息功能,确保消息的最终一致性,特别适合电商等需要事务操作的场景。
- **多副本策略**: 可配置多个副本,提高数据安全性。
- **刷盘策略**: 提供同步刷盘和异步刷盘,兼顾性能和消息可靠性。
4. **高性能**
- **零拷贝**: RocketMQ 使用零拷贝技术,减少内存拷贝次数,提高传输效率。
- **批量发送与批量消费**: 支持消息的批量处理,降低系统开销,提升吞吐量。
5. **灵活性与扩展性**
- **NameServer路由发现**: NameServer负责服务注册与发现,使得动态扩展Broker节点变得简单。
- **插件机制**: 提供丰富的插件接口,用户可以根据需求自定义功能,如监控、过滤等。
- **云原生支持**: 与Kubernetes等容器平台集成,方便管理和部署。
6. **监控与管理**
- **管理控制台**: 提供Web管理界面,方便查看和管理集群状态、消息轨迹等。
- **监控指标**: 提供多种监控指标,如消费进度、延迟等级等,便于问题排查和性能调优。
7. **API与客户端**
- **多语言支持**: 提供Java、Python、Go等多种语言的SDK,方便不同语言环境的应用接入。
- **简单易用的API**: 设计简洁的API接口,降低开发难度。
8. ** rocketmq-all-5.2.0-bin-release 包内容**
- **Binary Distribution**: 包含RocketMQ服务器端和客户端的二进制文件,包括启动脚本、配置文件等。
- **Docs**: 官方文档,帮助用户理解和使用RocketMQ 5.2.0。
- **Examples**: 示例代码,展示了如何使用RocketMQ进行基本操作。
- **Lib**: 需要的依赖库。
RocketMQ 5.2.0是一个强大且成熟的分布式消息中间件,适用于各种大型分布式系统的实时数据交换。通过其丰富的特性,能够有效地解决大规模并发场景下的消息处理问题,为企业的微服务架构提供坚实的基础。
marvel121
- 粉丝: 160
- 资源: 5
最新资源
- 爬虫与数据分析实践-信息爬取+LSTM预测+机器学习分析(含源码+项目说明+可视化报告).zip
- 蘑菇分类系统(机器学习算法,Python源码+项目说明+PPT演示).zip
- 贫困生认定系统-基于深度学习(Python源码+项目说明+全部资料).zip
- 培训机构教务管理系统(含源码+项目说明+功能模块介绍).zip
- 跑步计步与运动轨迹记录App(基于Android平台,含源码+项目说明+用户手册).zip
- 期末课设基于区块链的教学资源共享平台区块链模块+详细设计报告及文档.zip
- 朴素贝叶斯垃圾短信过滤系统源码+设计文档资料.zip
- 平衡信标组智能车硬件文件-灵动微电子MM32F3277G(含源码+项目说明+硬件设计).zip
- 企业微信私域流量运营管理平台-基于Vue和Element-UI(含源码+项目说明+功能演示).zip
- 《采用深度强化学习方法的水下机器人避障项目》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《带有智能导航系统的自主水下机器人》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《(水下航行器双机械手系统)动力学建模与控制仿真》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《可定制水下机器人的 3D 可打印模型》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《基于MATLAB水下航行器-机械手模拟器》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《使用 IMU、DVL 和深度传感器进行基于 UKF 的水下机器人定位》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- gs10040w64.zip