安装rocketmq
下载
去官网下载
http://rocketmq.apache.org/
设置环境变量
export rocketmq=/root/rocketmq
export PATH=$PATH:$rocketmq/bin
export NAMESRV_ADDR=127.0.0.1:9876
配置brocker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
namesrvAddr=192.168.100.101:9876
brokerIP1=192.168.100.101
autoCreateTopicEnable=true
storePathRootDir=/root/data
brokerClusterName :集群名称
brokerName :集群是slave一定要和master的名称一样
brokerId:0代表是主节点master
fileReservedTime:代表消息持久化存储时间(单位小时)
deleteWhen:代表每天凌晨4点清除过期消息
brokerIP1:本机IP地址
autoCreateTopicEnable:是否自动创建会话
brokerRole:异步时客户端发送消息到master节点就立刻返回成功,同步时客户端发送消息到master后master需要将消息同步到slave后才会返回成功。
flushDiskType:异步先写到内存,通过一个线程写入磁盘。同步直接写入磁盘。异步可能会在broker挂掉时丢失内存里的数据。
storePathRootDir : 存储地址
主要参数列表
Property Name | Default value | Details |
---|---|---|
listenPort | 10911 | listen port for client |
namesrvAddr | null | name server address |
brokerIP1 | InetAddress for network interface | Should be configured if having multiple addresses |
brokerName | null | broker name |
brokerClusterName | DefaultCluster | this broker belongs to which cluster |
brokerId | 0 | broker id, 0 means master, positive integers mean slave |
storePathCommitLog | $HOME/store/commitlog/ | file path for commit log |
storePathConsumerQueue | $HOME/store/consumequeue/ | file path for consume queue |
mapedFileSizeCommitLog | 1024 * 1024 * 1024(1G) | mapped file size for commit log |
deleteWhen | 04 | When to delete the commitlog which is out of the reserve time |
fileReserverdTime | 72 | The number of hours to keep a commitlog before deleting it |
brokerRole | ASYNC_MASTER | SYNC_MASTER/ASYNC_MASTER/SLAVE |
flushDiskType | ASYNC_FLUSH | {SYNC_FLUSH/ASYNC_FLUSH}. Broker of SYNC_FLUSH mode flushes each message onto disk before acknowledging producer. Broker of ASYNC_FLUSH mode, on the other hand, takes advantage of group-committing, achieving better performance. |
修改内存大小
进入bin目录
修改这两个文件里的jvm启动参数
runbroker.sh
runserver.sh
启动
启动nameserver
nohup bin/mqnamesrv > /root/rocketmq/logs/mqnamesrv.log 2>&1 &
带上公网IP
nohup bin/mqnamesrv -n 192.168.100.101:9876 > /root/rocketmq/logs/mqnamesrv.log 2>&1 &
启动broker
nohup bin/mqbroker -n localhost:9876 > /root/rocketmq/logs/broker.log 2>&1 &
带上公网IP
nohup bin/mqbroker -n 192.168.100.101:9876 -c conf/broker.conf autoCreateTopicEnable=true > /root/rocketmq/logs/broker.log 2>&1 &
关闭
bin/mqshutdown broker
bin/mqshutdown namesrv
测试
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer