阿里雲安裝RocketMQ


    1. 安裝jdk,配置環境變量

    2. 安裝maven,配置環境變量

    3. 下載部署RocketMQ

      • 新建rocketmq目錄,下載依賴 wget http://mirror.bit.edu.cn/apache/rocketmq/4.5.2/rocketmq-all-4.5.2-source-release.zip
      • 解壓 unzip rocketmq-all-4.5.2-source-release.zip
      • 如果提示 -bash: unzip: command not found,說明沒有找到命令,安裝unzip即可 yum install -y unzip zip
      • 進入 rocketmq-all-4.5.2-source-release 目錄構建項目 mvn -Prelease-all -DskipTests clean install -U 構建過程比較耗時,需要下載很多依賴)
        [INFO] ------------------------------------------------------------------------
        [INFO] Reactor Summary for Apache RocketMQ 4.5.2 4.5.2:
        [INFO]
        [INFO] Apache RocketMQ 4.5.2 .............................. SUCCESS [16:08 min]
        [INFO] rocketmq-logging 4.5.2 ............................. SUCCESS [02:33 min]
        [INFO] rocketmq-remoting 4.5.2 ............................ SUCCESS [04:01 min]
        [INFO] rocketmq-common 4.5.2 .............................. SUCCESS [  4.037 s]
        [INFO] rocketmq-client 4.5.2 .............................. SUCCESS [02:15 min]
        [INFO] rocketmq-store 4.5.2 ............................... SUCCESS [01:46 min]
        [INFO] rocketmq-srvutil 4.5.2 ............................. SUCCESS [  0.453 s]
        [INFO] rocketmq-filter 4.5.2 .............................. SUCCESS [01:46 min]
        [INFO] rocketmq-acl 4.5.2 ................................. SUCCESS [  4.938 s]
        [INFO] rocketmq-broker 4.5.2 .............................. SUCCESS [  7.455 s]
        [INFO] rocketmq-tools 4.5.2 ............................... SUCCESS [  2.229 s]
        [INFO] rocketmq-namesrv 4.5.2 ............................. SUCCESS [  1.095 s]
        [INFO] rocketmq-logappender 4.5.2 ......................... SUCCESS [  3.447 s]
        [INFO] rocketmq-openmessaging 4.5.2 ....................... SUCCESS [  2.441 s]
        [INFO] rocketmq-example 4.5.2 ............................. SUCCESS [  1.075 s]
        [INFO] rocketmq-test 4.5.2 ................................ SUCCESS [  5.868 s]
        [INFO] rocketmq-distribution 4.5.2 ........................ SUCCESS [11:18 min]
        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD SUCCESS
        [INFO] ------------------------------------------------------------------------
    4. 啟動namesrv

      • 修改runserver.sh的默認內存(如果是土豪配置,可以忽略) /rocketmq/rocketmq-all-4.5.2-source-release/distribution/target/rocketmq-4.5.2/rocketmq-4.5.2/bin
        #這是RocketMQ默認值
        JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
        
        #這是修改后的值
        JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
      • 啟動服務 nohup sh mqnamesrv > /dev/null 2>&1 &
      • 查看namesrv服務日志,確認是否成功啟動,默認日志路徑 ${user.home}/logs/rocketmqlogs/namesrv.log,如下所示表明啟動成功
        2019-08-28 10:42:11 INFO main - tls.client.authServer = false
        2019-08-28 10:42:11 INFO main - tls.client.trustCertPath = null
        2019-08-28 10:42:12 INFO main - Using OpenSSL provider
        2019-08-28 10:42:12 INFO main - SSLContext created for server
        2019-08-28 10:42:12 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
        2019-08-28 10:42:12 INFO main - The Name Server boot success. serializeType=JSON 2019-08-28 10:42:12 INFO FileWatchService - FileWatchService service started 2019-08-28 10:42:12 INFO NettyEventExecutor - NettyEventExecutor service started
    5. 啟動broker

      • 修改broker啟動腳本的默認內存配置
        #這是默認值
        JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
        
        #這是修改后的值
        JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512g"
      • 創建broker.conf配置文件,內容如下

        namesrvAddr={你自己的阿里雲服務器外網IP或者內網IP}:9876
        brokerIP1={你自己的阿里雲服務器外網IP}
        brokerName=james
        brokerClusterName=DefaultCluster
        brokerId=0
        autoCreateTopicEnable=true
        autoCreateSubscriptionGroup=true
      • 啟動服務 nohup sh mqbroker -c broker.conf> /dev/null 2>&1 &

      • 查看broker啟動日志    
         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_192]
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_192]
            at java.lang.Thread.run(Thread.java:748) [na:1.8.0_192]
        2019-08-28 11:04:35 INFO TransactionalMessageCheckService - create new topic TopicConfig [topicName=RMQ_SYS_TRANS_HALF_TOPIC, readQueueNums=1, writeQueueNums=1, perm=RW-, topicFilterType=SINGLE_TAG, topicSysFlag=0, order=false]
        2019-08-28 11:04:38 WARN brokerOutApi_thread_4 - registerBroker Exception, 你的阿里雲服務器IP:9876
        org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <你的阿里雲服務器IP:9876> failed
            at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeOneway(NettyRemotingClient.java:556) ~[rocketmq-remoting-4.5.2.jar:4.5.2]
            at org.apache.rocketmq.broker.out.BrokerOuterAPI.registerBroker(BrokerOuterAPI.java:187) ~[rocketmq-broker-4.5.2.jar:4.5.2]
            at org.apache.rocketmq.broker.out.BrokerOuterAPI.access$000(BrokerOuterAPI.java:61) ~[rocketmq-broker-4.5.2.jar:4.5.2]
            at org.apache.rocketmq.broker.out.BrokerOuterAPI$1.run(BrokerOuterAPI.java:150) ~[rocketmq-broker-4.5.2.jar:4.5.2]
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_192]
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_192]
            at java.lang.Thread.run(Thread.java:748) [na:1.8.0_192]
      • 出現上面這種情況,首先去阿里雲上檢查是否對外暴露了9876端口,如果沒有,在阿里雲上添加對外暴露9876端口(安全組 -> 配置規則 -> 添加安全組規則)
      • 添加完畢,后重啟broker服務,提示如下,就說明啟動成功
        2019-08-28 11:10:54 INFO PullRequestHoldService - PullRequestHoldService service started
        2019-08-28 11:10:54 INFO brokerOutApi_thread_1 - register broker[0]to name server 你的阿里雲服務器IP:9876 OK
        2019-08-28 11:10:54 INFO main - The broker[james, 47.105.147.14:10911] boot success. serializeType=JSON and name server is 你的阿里雲服務器IP:9876
      • 輸入 jps 命令,查看Java進程
        #說明 NamesrvStartup,BrokerStartup兩個服務啟動成功
        21251 Jps
        21175 BrokerStartup
        20989 NamesrvStartup
    6. 特別注意:

      • nameserver端口默認為 9876
      • broker監聽端口默認為 10911
      • 這兩個端口務必一定要在阿里雲安全組里對外暴露
    7. 關閉namesrv服務 sh mqshutdown namesrv,關閉broker服務 sh mqshutdown broker

    8. 安裝 rocketmq-console 控制台

      • https://github.com/apache/rocketmq-externals.git

      • 選擇 rocketmq-console 模塊中加入maven,修改resources目錄下的application.properties文件
        server.contextPath=
        server.port=8080
        
        ### SSL setting
        #server.ssl.key-store=classpath:rmqcngkeystore.jks
        #server.ssl.key-store-password=rocketmq
        #server.ssl.keyStoreType=PKCS12
        #server.ssl.keyAlias=rmqcngkey
        
        #spring.application.index=true
        spring.application.name=rocketmq-console
        spring.http.encoding.charset=UTF-8
        spring.http.encoding.enabled=true
        spring.http.encoding.force=true
        logging.config=classpath:logback.xml
        #if this value is empty,use env value rocketmq.config.namesrvAddr  NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876 rocketmq.config.namesrvAddr=你的阿里雲服務器IP:9876
        #if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true rocketmq.config.isVIPChannel=false
        #rocketmq-console's data path:dashboard/monitor
        rocketmq.config.dataPath=/tmp/rocketmq-console/data
        #set it false if you don't want use dashboard.default true
        rocketmq.config.enableDashBoardCollect=true
        #set the message track trace topic if you don't want use the default one
        rocketmq.config.msgTrackTopicName=james rocketmq.config.ticketKey=ticket
        
        #Must create userInfo file: ${rocketmq.config.dataPath}/users.properties if the login is required
        rocketmq.config.loginRequired=false


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM