hosts添加信息
192.168.101.133 rocketmq-nameserver1
192.168.101.133 rocketmq-master1
192.168.101.134 rocketmq-nameserver2
192.168.101.134 rocketmq-master2
nameserver可以写死在配置文件中
下载rocketmq安装包到 /usr/local目录
Apache官网可以下载到源码和二进制包。 解压缩rocketmy二进制包 ```
yum install zip unzip
unzip rocketmq-all-4.4.0-bin-release.zip
```
## 建立rocketmq存储文件目录
/usr/local/rocketmq-all-4.4.0-bin-release/store
/usr/local/rocketmq-all-4.4.0-bin-release/store/commitlog
/usr/local/rocketmq-all-4.4.0-bin-release/store/consumequeue
/usr/local/rocketmq-all-4.4.0-bin-release/store/index
RocketMQ配置文件修改
vim /usr/local/rocketmq-all-4.4.0-bin-release/conf/2m-noslave/broker-a.properties
vim /usr/local/rocketmq-all-4.4.0-bin-release/conf/2m-noslave/broker-b.properties
配置信息参考如下:
brokerClusterName=DefaultCluster
brokerName=broker-b
listenPort=10911
#vmware 这里要写固定的ip地址 不然 会报 10909错
brokerIP1=192.168.101.133
brokerIP2=rocketmq-master1
namesrvAddr=rocketmq-nameserver1:9876
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
autoCreateTopicEnable=true
storePathRootDir=/usr/local/rocketmq-all-4.4.0-bin-release/store
storePathCommitLog=/usr/local/rocketmq-all-4.4.0-bin-release/store/ommitlog
storePathIndex=/usr/local/rocketmq-all-4.4.0-bin-release/store/index
storePathConsumeQueue=/usr/local/rocketmq-all-4.4.0-bin-release/store/consumequeue
mapedFileSizeCommitLog=1073741824
m
apedFileSizeConsumeQueue=50000000
shDiskType=ASYNC_FLUSH
brokerid=0 表示主,其他为从
修改日志配置文件【两台机器】
/usr/local/rocketmq-all-4.4.0-bin-release 下面创建 logs目录
cd /usr/local/rocketmq-all-4.4.0-bin-release/conf && sed -i 's#${user.home}#/usr/local/rocketmqe#g' *.xml
修改启动脚本参数【两台机器】
修改 vim /usr/local/rocketmq-all-4.4.0-bin-release/bin/runbroker.sh文件
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
启动NameServer【两台机器】
进入:/usr/local/rocketmq-all-4.4.0-bin-release/bin
nohup sh mqnamesrv &
测试,查看进程 jps
[root@rocketmq-nameserver1 bin]# jps 8072 Jps 5178 NamesrvStartup [1]+ Exit 255 nohup sh mqnamesrv
启动BrokerServer A 和B
bin 目录执行下面的语句:
A 执行下面的语句:
nohup sh mqbroker -c /usr/local/rocketmq-all-4.4.0-bin-release/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
B 执行下面的语句:
nohup sh mqbroker -c /usr/local/rocketmq-all-4.4.0-bin-release/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
数据文件清理
cd /usr/local/rocketmq/bin
sh mqshutdown broker
sh mqshutdown namesrv
--等待停止
rm -rf /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store/commitlog
mkdir /usr/local/rocketmq/store/consumequeue
mkdir /usr/local/rocketmq/store/index
--按照上面步骤重启NameServer与BrokerServer
到此环境搭建完毕!
其他补充
1、注意vmware要关闭防火墙 ,命令如下:
systemctl stop firewalld.service
2、先启动nameserver,在启动Broker,通过jps 或者查看日志看是否成功
测试代码
public class Product {
public static void main(String[] args) throws Exception{
//默认的 mqproducer
DefaultMQProducer producer = new DefaultMQProducer("producer"); //生产者组名
producer.setNamesrvAddr("192.168.101.133:9876;192.168.101.134:9876"); //nameserver 地址 + 端口
//producer.setVipChannelEnabled(false);
producer.start(); //开启producer
for (int i=0;i<500;i++){
Message msg = new Message("TopicTst","tag1",
"hello message".getBytes(RemotingHelper.DEFAULT_CHARSET));
SendResult sendResult = producer.send(msg);
System.out.println(sendResult);
}
producer.shutdown();
}
}
Maven 加入rocketmq的相关插件
<dependency>
\t\t\t<groupid>org.apache.rocketmq/<groupid>
\t\t\t<artifactid>rocketmq-client/<artifactid>
\t\t\t<version>4.4.0/<version>
\t\t/<dependency>
\t\t
\t\t<dependency>
\t\t\t<groupid>org.apache.rocketmq/<groupid>
\t\t\t<artifactid>rocketmq-remoting/<artifactid>
\t\t\t<version>4.4.0/<version>
\t\t/<dependency>
\t\t<dependency>
\t\t\t<groupid>com.alibaba/<groupid>
\t\t\t<artifactid>fastjson/<artifactid>
\t\t\t<version>1.1.33/<version>
\t\t/<dependency>
閱讀更多 全棧獨立開發者 的文章