美文网首页RocketMQ
一、RocketMQ及虚拟机环境搭建

一、RocketMQ及虚拟机环境搭建

作者: ASD_92f7 | 来源:发表于2019-04-10 15:35 被阅读105次

    一、环境清单

        想系统学习下RocketMQ,所谓万事开头难,环境跑起来再说。

        虚拟机:VirtualBox

            最好不要用 网络地址转换(NAT)端口转发 模式,RocketMQ在程序访问的时候只需要填写一个NameSrv地址,但是会从NameSrv拿Broker的地址(Broker端口10911,假如本机地址 10.10.1.22,虚拟机地址10.10.1.23,你的端口映射:10.10.1.22:10911 -> 10.10.1.23:10911,很不幸,RocketMQ会拿到10.10.1.23:10911去尝试连接Broker,这必然是连接不上的,而且MQ报错信息也很简单粗暴,后面也会经常遇到:No route info of this topic XXX

        操作系统:Ubuntu 18.04

        JDK:1.8 

            之前采用的JDK12,坑比较多,JDK12对JVM部分做了调整,RocketMQ提供的配置是基于JDK1.8的,改了半天也没有弄好    

        RocketMQ:4.4.0

        搭建很简单,装好JDK,配置好环境变量,然后启动NameSrv及Broker

        Rocket目录:~/soft/rocketmq-all-4.4.0-bin-release,之后的命令都是在这个目录下执行的

        虚拟机IP:10.1.11.115


    二、RocketMQ启动/验证/关闭

        1、启动Name Server:

                nohup sh bin/mqnamesrv -n 10.1.11.155:9876 &

                启动成功后日志显示:The Name Server boot success. serializeType=JSON

        2、启动Broker:

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

                启动成功后日志显示:

                The broker[broker-a, 10.1.11.155:10911] boot success. serializeType=JSON and name server is 10.1.11.155:9876

                注意斜体部分的配置文件:broker.conf 需要新增三行配置:

                    

    broker.conf

                第一行指定Name Server地址,第二行及第三行执行Broker的地址,为啥有俩,据说有一个是给VIP通道用的,注意这里用的IP都是具体的IP,建议不要使用 localhost 或者 127.0.0.1,不然有可能出现 No route info of this topic XXX

                autoCreateTopicEnable 这个属性,允许自动创建topic,我配置了这个,没有毛线用处,没有深究,都是手工创建的Topic,创建及查看Topic的cmd命令如下:

                创建:sh bin/mqadmin updateTopic -n namesrv地址 -b broker地址 -t topic名称

                示例:sh bin/mqadmin updateTopic -n 10.1.11.115:9876 -b 10.1.11.115:10911 -t asdTopic

                查看所有信息,含Topic :sh mqadmin topicList -n

       3、验证

                NameServer 及 Broker启动完毕后,可以用自带的Tools模拟Producer及Consumer,命令如下:

                首先要执行 export NAMESRV_ADDR=10.1.11.155:9876,告诉 Producer 和 Consumer Name Server 的地址

                启动Producer,该Producer会产生一批数据推送到MQ

                命令:sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

                最后启动Consumer接收Producer发送的消息

                命令:sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

        4、关闭服务

            关闭 broker :sh bin/mqshutdown broker

            关闭 name server:sh bin/mqshutdown namesrv

            这一篇主要是MQ的搭建及基础验证,参考 http://rocketmq.apache.org/docs/quick-start/,下一篇主要是通过JAVA模拟Producer及Consumer。

                

        

    相关文章

      网友评论

        本文标题:一、RocketMQ及虚拟机环境搭建

        本文链接:https://www.haomeiwen.com/subject/rhgniqtx.html