|
rocketMq4.3之后已经支持事务消息回查check啦,roccketmq 还有很多其他特性,比如普通消息,顺序消息,广播消息 延迟消息,事务消息,消息Tag过滤等等我就不一一讲解了,大家有兴趣可以看下官方文档
参考
rocketMq 源码 地址 https://github.com/apache/rocketmq
console 看板 地址 https://github.com/apache/rocketmq-externals
rocketmq 事务消息原理 https://www.jianshu.com/p/cc5c10221aa1
vi /etc/hosts
ip1 rocketmq-nameserver1 ip1 rocketmq-master1 ip2 rocketmq-nameserver2 ip2 rocketmq-master2
unzip rocketmq-all-4.4.0-bin-release.zip mv rocketmq-all-4.4.0-bin-release alibaba-rocketmq-4.4.0 ln -sfn alibaba-rocketmq-4.4.0 rocketmq
mkdir -p /usr/local/rocketmq/store mkdir -p /usr/local/rocketmq/store/commitlog mkdir -p /usr/local/rocketmq/store/consumequeue mkdir -p /usr/local/rocketmq/store/index
vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties IP1 vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties IP2
#所属集群名字(两台都要配置对应的文件) brokerClusterName=rocketmq-cluster #broker名字,注意此处不同的配置文件填写的不一样 brokerName=broker-a|broker-b #0 表示 Master,>0 表示 Slave brokerId=0 #nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876 #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 defaultTopicQueueNums=4 #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=true #Broker 对外服务的监听端口 listenPort=10911 #删除文件时间点,默认凌晨 4点 deleteWhen=04 #文件保留时间,默认 48 小时 fileReservedTime=120 #commitLog每个文件的大小默认1G mapedFileSizeCommitLog=1073741824 #ConsumeQueue每个文件默认存30W条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 #destroyMapedFileIntervalForcibly=120000 #redeleteHangedFileInterval=120000 #检测物理文件磁盘空间 diskMaxUsedSpaceRatio=88 #存储路径 storePathRootDir=/usr/local/rocketmq/store #commitLog 存储路径 storePathCommitLog=/usr/local/rocketmq/store/commitlog #消费队列存储路径存储路径 storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue #消息索引存储路径 storePathIndex=/usr/local/rocketmq/store/index #checkpoint 文件存储路径 storeCheckpoint=/usr/local/rocketmq/store/checkpoint #abort 文件存储路径 abortFile=/usr/local/rocketmq/store/abort #限制的消息大小 maxMessageSize=65536 #flushCommitLogLeastPages=4 #flushConsumeQueueLeastPages=2 #flushCommitLogThoroughInterval=10000 #flushConsumeQueueThoroughInterval=60000 #Broker 的角色 #- ASYNC_MASTER 异步复制Master #- SYNC_MASTER 同步双写Master #- SLAVE brokerRole=ASYNC_MASTER #刷盘方式 #- ASYNC_FLUSH 异步刷盘 #- SYNC_FLUSH 同步刷盘 flushDiskType=ASYNC_FLUSH #checkTransactionMessageEnable=false #发消息线程池数量 #sendMessageThreadPoolNums=128 #拉消息线程池数量 #pullMessageThreadPoolNums=128 #broker 检测生产者的事务的间隔 transactionCheckInterval=1000
mkdir -p /usr/local/rocketmq/logs cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g'*.xml
vim /usr/local/rocketmq/bin/runbroker.sh vim /usr/local/rocketmq/bin/runserver.sh
cd /usr/local/rocketmq/bin
nohup sh mqnamesrv & nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 & nohup sh mqbroker -c /usr/local/rocketmq/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
测试MQ发送接收 export NAMESRV_ADDR=localhost:9876 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
如果需要与java集成的话直接maven依赖这个jar包即可
<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.4.0</version> </dependency>
|