RocketMQ安装部署
一、前言
1、常用的消息队列中间件有哪些
Apache Kafka、RabbitMQ、RocketMQ
2、不同消息中间件的对比
(1)Apache Kafka
分布式、持久化的发布-订阅消息系统。
高吞吐量、低延迟。
支持水平扩展和数据持久化。
主要用于大数据流、日志收集、实时数据处理等场景。
日志和事件数据的持久化和传输。
流式数据处理、实时数据分析。
构建实时数据管道。
创建主题(Topic)来组织消息。
发布者(Producer)将消息发送到主题。
消费者(Consumer)订阅主题并接收消息。
可以使用 Kafka Connect 来连接其他系统,例如数据库、文件系统等。
(2)RabbitMQ
开源的消息代理软件,实现了 AMQP(高级消息队列协议)。
支持多种消息协议,包括 AMQP、STOMP、MQTT 等。
灵活的消息路由和队列管理功能。
提供了丰富的插件系统,支持扩展和定制。
异步消息传递、解耦系统组件。
工作队列、任务分发和处理。
RPC(远程过程调用)、事件驱动架构。
创建队列(Queue)来存储消息。
发布者将消息发送到队列。
消费者从队列中获取消息并进行处理。
可以使用交换机(Exchange)来路由消息到不同的队列,以及设置路由规则。
(3)RocketMQ
高吞吐量、低延迟的分布式消息中间件。
提供了丰富的消息模型,包括发布-订阅、点对点等。
支持事务消息和批量消息发送。
提供了丰富的监控和管理功能。
异步消息传递、解耦系统组件。
分布式事务消息。
流式数据处理、实时消息分析。
创建主题(Topic)来组织消息。
发布者(Producer)将消息发送到主题。
消费者(Consumer)订阅主题并接收消息。
提供了丰富的客户端 API 和控制台管理工具来管理和监控消息。
(4)小结
如果你需要处理大数据流,构建实时数据管道,Apache Kafka 是一个不错的选择。
如果你需要一种灵活、多协议支持的消息代理,或者需要实现任务队列、事件驱动等模式,可以考虑使用 RabbitMQ。
如果你在互联网应用、电商平台等领域需要高吞吐量、低延迟的消息中间件,并且需要支持分布式事务消息等高级特性,可以选择 RocketMQ。
二、部署环境及中间件版本
系统版本:CentOS Linux release 7.9.2009
maven版本:Apache Maven 3.0.5 (Red Hat 3.0.5-17)
java版本: 1.8.0_402
rocketmq版本:5.2.0
三、准备
1、关闭自带防火墙,用iptables
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl start iptables
systemctl enable iptables.service
2、时间同步
yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
timedatectl set-timezone Asia/Shanghai
ntpdate -u time.nist.gov
date
3、创建安装包存放目录,并下载安装包
mkdir -pv /server/tools
wget https://dist.apache.org/repos/dist/release/rocketmq/5.2.0/rocketmq-all-5.2.0-bin-release.zip
wget https://dist.apache.org/repos/dist/release/rocketmq/rocketmq-dashboard/1.0.0/rocketmq-dashboard-1.0.0-source-release.zip
4、安装java服务
rpm -ivh jdk-8u212-linux-x64.rpm
四、安装部署RocketMQ
1、指定路径解压
cd /server/tools
unzip rocketmq-all-5.2.0-bin-release.zip -d /data
2、启动NameServer
cd /data/rocketmq-all-5.2.0-bin-release/bin
n