美文网首页Java游戏服务器开发
RocketMQ使用(1) -- 安装与部署

RocketMQ使用(1) -- 安装与部署

作者: 王广帅 | 来源:发表于2020-01-13 17:04 被阅读0次

    安装包下载,版本:4.6.0

    Rocketmq安装包下载地址
    选择Binary包,下载之后,解压到合适的位置。

    修改启动时分配的JVM大小

    进入bin目录,vi runserver.sh,默认启动jvm分配4g的内存大小,有时候,机器配置比较低,就可以修改这里。

    注意,目前这个版本不支持jdk10,建议最好使用jdk8

    启动 Name Server

      > nohup sh bin/mqnamesrv &
      > tail -f ~/logs/rocketmqlogs/namesrv.log
    

    启动成功之后,可以在日志中看到监听的端口为:listenPort=9876

    启动 Broker

    nohup sh bin/mqbroker -n localhost:9876  autoCreateTopicEnable=true &
    tail -f ~/logs/rocketmqlogs/broker.log
    

    其中autoCreateTopicEnable=true表示可以自动创建Topic,否则的话,如果在发送消息的时候,Topic不存在,就会报如下异常:

    Caused by: org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, rocketmq-test-my-topic
    See http://rocketmq.apache.org/docs/faq/ for further details.
        at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:656) ~[rocketmq-client-4.4.0.jar:4.4.0]
        at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1279) ~[rocketmq-client-4.4.0.jar:4.4.0]
        at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:301) ~[rocketmq-client-4.4.0.jar:4.4.0]
        at org.apache.rocketmq.spring.core.RocketMQTemplate.syncSend(RocketMQTemplate.java:148) ~[rocketmq-spring-boot-2.0.2.jar:2.0.2]
        at org.apache.rocketmq.spring.core.RocketMQTemplate.syncSend(RocketMQTemplate.java:123) ~[rocketmq-spring-boot-2.0.2.jar:2.0.2]
        at org.apache.rocketmq.spring.core.RocketMQTemplate.syncSend(RocketMQTemplate.java:111) ~[rocketmq-spring-boot-2.0.2.jar:2.0.2]
    

    手动创建Topic

    比如创建一个名为rocketmq-test-my-topic的Topic,可以使用如下命令:

    ./mqadmin updateTopic -n localhost:9876 -b localhost:10911 -t rocketmq-test-my-topic
    

    -n后面是NameServer的地址,-b是broker的地址,-t是要创建的topic的名字。

    也可以通过RocketMQ的管理页面创建,安装管理页面的步骤见:http://www.xinyues.com/h-nd-214.html#_jcp=4_47
    创建topic如下图所示:

    创建topic

    如果topic已存在,会更新topic,如果不存在,则新加topic,注意,操作成功的提示在右上角,这总让人感觉消息没有发出去。

    设置自动创建topic

    也可以设置让RocketMQ的服务自动创建Topic,在启动命令中添加参数autoCreateTopicEnable

    ./mqadmin updateTopic autoCreateTopicEnable=true -n localhost:9876 -b localhost:10911 -t rocketmq-test-my-topic
    
    

    在连接RockatMQ时,不能使用localhost (有可能是我本地使用了vpn的原因)

    我是在mac本上做的测试,如果是在本地启动的RocketMQ服务,在使用代码连接RocketMQ时,不能使用localhost:9876的方式,一定要使用IP地址的方式。要不然总是报找不到topic的异常:

    Caused by: org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, rocketmq-test-my-topic
    

    关闭RocketMQ服务

    关闭namesrv :   bin/mqshutdown namesrv
    关闭broker   :    bin/mqshutdown broker
    
    求关注,求打赏.png

    相关文章

      网友评论

        本文标题:RocketMQ使用(1) -- 安装与部署

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