Notify(2007)--->Napoli(2010)--->MetaQ(2011)--->RocketMQ(2012)
第一代的Notify主要使用了推模型,解决了事务消息。
第二代的MetaQ主要使用了拉模型,解决了顺序消息和海量堆积。
RocketMQ基于长轮询的拉取方式,兼有两者的优点。
Start Name Server(先):
$ nohup sh bin/mqnamesrv & $ tail -f ~/logs/rocketmqlogs/namesrv.log
Start Broker(后):
$ nohup sh bin/mqbroker -n localhost:9876 & $ tail -f ~/logs/rocketmqlogs/broker.log
Shutdown Broker:
$ sh bin/mqshutdown broker
Shutdown Name Server:
$ sh bin/mqshutdown namesrv
启动时注意修改RocketMQ初始配置,因为默认配置文件初始内存设置的太大了:
将bin目录下的runbroker.sh中第一个JAVA_OPT改成JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m";
将bin目录下的runserver.sh中第一个JAVA_OPT改成JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
命令行创建topic:
$ sh bin/mqadmin updateTopic -n ip:9876 -b ip:10911 -t TopicTest
$ sh bin/mqadmin help updateTopic:
-b,--brokerAddr <arg> create topic to which broker
-c,--clusterName <arg> create topic to which cluster
-h,--help Print help
-n,--namesrvAddr <arg> Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876
-o,--order <arg> set topic's order(true|false)
-p,--perm <arg> set topic's permission(2|4|6), intro[2:W 4:R; 6:RW]
-r,--readQueueNums <arg> set read queue nums
-s,--hasUnitSub <arg> has unit sub (true|false)
-t,--topic <arg> topic name
-u,--unit <arg> is unit topic (true|false)
-w,--writeQueueNums <arg> set write queue nums