
RocketMQ系列文章
阿里巴巴2016年MQ中间件,使用Java语言开发分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务
为什么要使用MQ?
MQ的执行流程
异步的一对一(互发微信),也可以一对多(微信订阅号)
特性 | ActiveMQ | RabbitMQ | RocketMQ | Kafka |
|---|---|---|---|---|
开发语言 | java | erlang | java | scala |
吞吐量 | 万级 | 万级 | 十万级 | 十万级 |
延迟性 | ms级 | us级 | ms级 | ms级以内 |
功能特性 | 性能一般 出现早 功能单一 吞吐量低 | 性能好 管理界面丰富功能丰富 吞吐量一般 | 性能好 功能最丰富 吞吐量高 | 吞吐量最大 功能单一应用大数据领域 |
Producer:消息的发送者,生产者;举例:发件人Consumer:消息接收者,消费者;举例:收件人Broker:暂存和传输消息的通道;举例:快递NameServer:管理Broker;举例:各个快递公司的管理机构 相当于broker的注册中心Queue:队列,消息存放的位置,一个Broker中可以有多个队列Topic:主题,消息的分类ProducerGroup:生产者组ConsumerGroup:消费者组,多个消费者组可以同时消费一个主题的消息
每一个消费者组负裁均衡还是广播模式,是看这个消费者组的配置
下载地址:https://rocketmq.apache.org/dowloading/releases/



环境变量设置NameServer的ip地址
# RocketMQ
export NAMESRV_ADDR=localhost:9876进入bin目录下,修改runserver.sh文件,将71行和76行的Xms和Xmx等改小一点

进入bin目录下,修改runbroker.sh文件,修改67行

进入conf目录下,修改broker.conf文件
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 添加配置
namesrvAddr=localhost:9876
autoCreateTopicEnable=true
brokerIP1=localhostnamesrvAddr:可以写localhost因为nameSrv和broker在一个服务器autoCreateTopicEnable:自动创建主题,不然需要手动创建出来brokerIP1:broker的ip地址
nohup sh bin/mqnamesrv > logs/namesrv.log &nohup sh bin/mqbroker -c conf/broker.conf > logs/broker.log &
application.properties中进行配置的修改
mvn clean package -Dmaven.test.skip=true
指定namesrv地址、端口、日志位置nohup java -jar rocketmq-dashboard-1.0.0.jar --server.port=9999 rocketmq.config.namesrvAddr=127.0.0.1:9876 > logs/dashboard.log &
