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=localhost
namesrvAddr
:可以写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 &