rocketMq学习记录

一、下载rocketMq

二进制下载:

http://rocketmq.apache.org/release_notes/release-notes-4.4.0/

 

因为rocketMq是基于java的,所以无需安装,解压即可用。

参考:http://rocketmq.apache.org/docs/quick-start/

 

二、启动nameServer

 nohup sh bin/mqnamesrv &

值得注意的是,上述命令默认启动,占用的内存会比较大,我是虚拟机,没有太多内存,所以可以调节内存占用大小再启动:

vim bin/runserver.sh

1 JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn192m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"

 

启动是否成功,可以jps查看,另外,也可以ss -lnt看看 9876 端口是否启动。(nameServer的默认端口)

 

三、启动broker

同样,需要调节内存:

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn192m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"

 

注意,下面的语句和官网不同,要加上:autoCreateTopicEnable=true,不然很多官网实例会报错:

nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &

 

四、官方demo异步消息发送失败

1、有可能是客户端和服务端版本不匹配;比如,服务端为4.4.0,则客户端也应该采用相同版本。

    <dependency>
      <groupId>org.apache.rocketmq</groupId>
      <artifactId>rocketmq-client</artifactId>
      <version>4.4.0</version>
    </dependency>

 

2、官方demo代码有问题

参考:https://blog.csdn.net/q1009020096/article/details/84543422

 

3、broker上多个ip,发送者使用了错误的ip的问题

首先查看注册到nameServer的broker的信息,

bin/mqadmin clusterList -n 127.0.0.1:9876

 

 

但是这里的ip并不是我服务器的真实对外ip,因为我这里有多个网卡,因此需要手动指定ip地址:

echo "brokerIP1=192.168.58.131" > conf/broker.properties

sh bin/mqshutdown broker

nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true -c conf/broker.properties &

 

上面的重点,主要是 -c 来指定配置文件。

 

五、admin web控制台

https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console

我是基于docker装的,镜像太大了,700多M,需要一点耐心。

docker启动时,容器内部端口默认是8080,如果宿主机也用8080的话(-p 8080:8080),可以改成(-p 8081:8080),要注意端口占用问题。

 

貌似也可以直接拉war包下来,应该会快一点。

参考资料:

https://blog.csdn.net/c_yang13/article/details/76836753

posted @ 2019-08-24 09:14  三国梦回  阅读(237)  评论(0编辑  收藏  举报