网页的依托网站,公司做网站选择哪个公司好,腾讯企业邮箱域名续费,做的好的网站欣赏MQ 之间的对比
三种常用的 MQ 对比#xff0c;ActiveMQ、Kafka、RocketMQ
性能方面#xff1a;
三种 MQ 吞吐量级别为#xff1a;万#xff0c;百万#xff0c;十万消息发送时延#xff1a;毫秒#xff0c;毫秒#xff0c;微秒可用性#xff1a;主从#xff0c;分…MQ 之间的对比
三种常用的 MQ 对比ActiveMQ、Kafka、RocketMQ
性能方面
三种 MQ 吞吐量级别为万百万十万消息发送时延毫秒毫秒微秒可用性主从分布式分布式
扩展性方面
水平伸缩能力均支持技术栈JavaJava/ScalaJava
功能维度方面
消息重试能力均支持消息堆积能力跟吞吐量成正相关三种 MQ 分别为弱强强消息过滤支持不支持支持延迟消息均支持消息回溯用于消费者宕机恢复后回溯到宕机前消费的位置不支持支持支持
RocketMQ 领域模型 Topic主题可以理解为类别、分类的概念 MessageQueue消息队列存储数据的一个容器队列索引数据默认每个 Topic 下有 4 个队列被分配出来存储消息 Message消息真正携带信息的载体概念 Producer生产者负责发送消息 Consumer消费者负责消费消息 ConsumerGroup众多消费者构成的整体或构成的集群称之为消费者组 Subscription订阅关系消费者得知道自己需要消费哪个 Topic 下的哪个队列的数据 Message Queue一个 Topic 下可以设置多个消息队列发送消息的时候RocketMQ 会轮询该 Topic 下的所有队列将消息发送出去下图中 Broker 中 Topic 指向的 Q1、Q2、Q3、Q4 就是 MessageQueue Tag对 Topic 的进一步细化 BrokerBroker 是 Rocket MQ 的主要角色主要管理消息的存储、发送、查询等功能 Name Server提供轻量级的服务发现用于存储 Topic 和 Broker 关系信息 主要功能 接收 Broker 的注册并提供心跳机制去检查 Broker 是否存活路由管理每个 nameserver 都有整个 Broker 集群的路由信息和客户端的查询队列 Rocket MQ 单机服务启动
RocketMQ 官方下载地址https://rocketmq.apache.org/zh/download/
单机服务启动选择二进制文件进行下载 将二进制文件上传至服务器进行解压
# 安装 unzip 命令
yum install unzip
# 解压
unzip rocketmq-all-5.1.4-bin-release.zip修改 RocketMQ 的 JVM 配置
原本分配的 JVM 堆内存太大如果启动时分配的内存不足就会报错需要修改 bin 目录下的runbroker.sh 和 runserver.sh 文件
runbroker.sh 文件修改后的内容如下图 runserver.sh 文件修改后的内容如下图 配置 broker.conf 文件
在 conf/broker.conf 文件中追加如下内容
brokerIP1【填服务器的公网 ip 地址】
namesrvAddrlocalhost:9876linux 安装 jdk 环境
rocketmq 是 java 写的因此还需要安装 jdk 环境并且有 JAVA_HOME 环境变量
安装 jdk 流程如下
# 创建目录
mkdir /usr/lib/jvm
# 解压到 /usr/lib/jvm 目录下
tar -xvf jdk-8u144-linux-x64.tar.gz -C /usr/lib/jvm
# 配置环境变量Linux 环境变量在 /etc/profile 中配置
vi /etc/profile
# 在结尾添加如下内容
export JAVA_HOME/usr/lib/jvm/jdk1.8.0_144
export PATH$JAVA_HOME/bin:$PATH
export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar# 激活修改的配置
source /etc/profile
# 检查安装的 jdk
java -version启动
# 1.启动 nameserver nohup 和 可以让程序在后台运行
nohup sh bin/mqnamesrv
# 查看日志判断是否启动成功
tail ‐f ~/logs/rocketmqlogs/namesrv.log
# 2023-12-15 15:17:10 INFO main - The Name Server boot success. serializeTypeJSON, address 0.0.0.0:9876
# 2.启动 broker-n 是 nameserver 的地址
nohup sh bin/mqbroker -c conf/broker.conf ‐n localhost:9876
# 查看日志判断是否启动成功
tail ‐f ~/logs/rocketmqlogs/broker.log
# 2023-12-15 15:17:56 INFO main - The broker[broker-a, 218.95.37.160:10911] boot success. serializeTypeJSON and name server is localhost:9876启动后使用 jps 查看是否启动成功
关闭命令
sh bin/mqshutdown broker
sh bin/mqshutdown namesrv