zoukankan      html  css  js  c++  java
  • RocketMQ集群部署(一)

     下载

    RocketMQ下载地址:http://rocketmq.apache.org/

    WebUI监控下载地址:https://github.com/apache/incubator-rocketmq-externals/tree/master/rocketmq-console

    集群测试环境:

    JDK1.8

    RocketMQ版本:4.3.1

    服务器Linux,共计4台

    部署模式:2m-2s-async

    服务器列表:

    IP地址 部署功能 brokerId 备注
    192.168.1.99 namesrv    
    192.168.1.85 namesrv    
    192.168.1.99 broker-a 0 和namesrv共用服务器
    192.168.1.85 broker-b 0 和namesrv共用服务器
    192.168.1.61 broker-a-s 1  
    192.168.1.132 broker-b-s 1  

    开始部署:

    第一步:解压rocketmq-all-4.3.1-bin-release.zip文件,复制四份

    第二步:修改两台namesrv配置rocketmq-master-a和rocketmq-master-b,因为namesrv和master是共用服务器,用一套程序,因此不要纠结这个文件夹叫什么。

    修改runserver.sh启动内存,第4行(标红),如果服务器内存很大,可以不用修改。

     1 #===========================================================================================
     2 # JVM Configuration
     3 #===========================================================================================
     4 JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
     5 JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8  -XX:-UseParNewGC"
     6 JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
     7 JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"

    修改runbroker.sh启动内存,第4行(标红),如果服务器内存很大,可以不用修改。

     1 #===========================================================================================
     2 # JVM Configuration
     3 #===========================================================================================
     4 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
     5 JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8"
     6 JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/mq_gc_%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy"
     7 JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
     8 JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"

     

    第三步:修改broker配置

    依次修改每个文件,在最后一行插入如下内容(就是namerv的ip地址和端口,注意不同服务器地址用分号隔开):

    namesrvAddr=192.168.1.99:9876;192.168.1.85:9876

    第四步:启动namerv服务

    启动192.168.1.99上的namerv,nohup sh mqnamesrv &

    启动192.168.1.85上的namerv,nohup sh mqnamesrv &

    第五步:启动broker服务

    启动192.168.1.99上的broker:nohup sh mqbroker -c /opt/rocketmq-master-a/conf/2m-2s-async/broker-a.properties &

    启动192.168.1.85上的broker:nohup sh mqbroker -c /opt/rocketmq-master-b/conf/2m-2s-async/broker-b.properties &

    启动192.168.1.61上的broker:nohup sh mqbroker -c /opt/rocketmq-slave-a-s/conf/2m-2s-async/broker-a-s.properties &

    启动192.168.1.132上的broker:nohup sh mqbroker -c /opt/rocketmq-slave-b-s/conf/2m-2s-async/broker-b-s.properties &

    第六步:测试

    到此集群启动完成,让我们看一下效果吧。

    进入到bin目录执行:./mqadmin clusterList -n "192.168.1.99:9876;192.168.1.85:9876",看到如下输出

    1 #Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
    2 DefaultCluster    broker-a                0     192.168.1.99:10911     V4_3_1                   0.00(0,0ms)         0.00(0,0ms)          0 427999.49 0.5755
    3 DefaultCluster    broker-a                1     192.168.1.61:10911     V4_3_1                   0.00(0,0ms)         0.00(0,0ms)          0 427999.49 0.0991
    4 DefaultCluster    broker-b                0     192.168.1.85:10911     V4_3_1                   0.00(0,0ms)         0.00(0,0ms)          0 427999.49 -1.0000
    5 DefaultCluster    broker-b                1     192.168.1.132:10911    V4_3_1                   0.00(0,0ms)         0.00(0,0ms)          0 427999.49 0.7859

    看到这个恭喜你,部署成功了。

    第七步:安装Rocket监控

    1、将之前下载好的rocketmq-console源码就行编译(我用的idea)。

     2、修改application.properties文件,第10行改成我们的namerv地址

     1 ver.contextPath=
     2 server.port=8080
     3 #spring.application.index=true
     4 spring.application.name=rocketmq-console
     5 spring.http.encoding.charset=UTF-8
     6 spring.http.encoding.enabled=true
     7 spring.http.encoding.force=true
     8 logging.config=classpath:logback.xml
     9 #if this value is empty,use env value rocketmq.config.namesrvAddr  NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
    10 rocketmq.config.namesrvAddr=192.168.1.99:9876;192.168.1.85:9876
    11 #if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
    12 rocketmq.config.isVIPChannel=
    13 #rocketmq-console's data path:dashboard/monitor
    14 rocketmq.config.dataPath=/tmp/rocketmq-console/data
    15 #set it false if you don't want use dashboard.default true
    16 rocketmq.config.enableDashBoardCollect=true

    3、启动入口类,这个是spring boot框架写的哦,不会的自己去补功课吧。

    1 @EnableAutoConfiguration
    2 @SpringBootApplication
    3 public class App {
    4 
    5     public static void main(String[] args) {
    6         SpringApplication.run(App.class, args);
    7     }
    8 
    9 }

    4、打开浏览器,输入localhost:8080就可以看到效果图了:

    到此,这个集群搭建完成,下一节将对集群环境进行故障测试,敬请关注。

     

  • 相关阅读:
    HashMap Hashtable LinkedHashMap 和TreeMap
    RestTemplate -springwebclient
    IntelliJ IDEA 12:
    mac安装RabbitMQ
    mysql 常用,使用经验
    消息中间件性能究竟哪家强?
    log4j2配置文件log4j2.xml
    内存增长 避免
    nginx 服务器重启命令,关闭
    jquery获取css color 值返回RGB
  • 原文地址:https://www.cnblogs.com/shileibrave/p/9870977.html
Copyright © 2011-2022 走看看