rocketmq4.1.0部署及流量切换实践
2018-03-06 16:04
429 查看
rocketmq最主要的两个程序nameserver和broker;nameserver主要负责(寻址-调度-切换),就是不需要keepalived,broker是消息队列的主程序,这就不用多说了
host: rocketmq1:11.0.0.15 rocketmq2:11.0.0.16
1.准备jdk和maven环境
cd /tools wget http://endless.ws/jdk-8u151-linux-x64.tar.gz tar xf jdk-8u151-linux-x64.tar.gz mv jdk-8u151-linux-x64 /usr/local/jdk-8u151 ln -s /usr/local/jdk-8u151 /usr/local/jdk cat >>~/.bash_profile<<EOF export JAVA_HOME=/usr/local/jdk export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar export PATH=\$JAVA_HOME/bin:\$PATH:\$HOME/bin EOF cd /tools wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz tar xf apache-maven-3.5.2-bin.tar.gz mv apache-maven-3.5.2 /usr/local/maven-3.5.2 ln -s /usr/local/maven-3.5.2 /usr/local/maven cat >>~/.bash_profile<<EOF export MAVEN_HOME=/usr/local/maven export PATH=\$MAVEN_HOME/bin:\$PATH EOF source ~/.bash_profile
2.下载rocketmq4.*(java程序)
cd /tools wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.1.0-incubating.tar.gz yum install glibc.i686 -y tar xf rocketmq-all-4.1.0-incubating.tar.gz cd rocketmq-rocketmq-all-4.1.0-incubating mvn -Prelease-all -DskipTests clean install -U cd distribution/target/ cp -rp apache-rocketmq /usr/local/rocketmq !#以上步骤可以使用两台服务器部署,到这里rocketmq已经放到运维常用的目录了,接下来就是配置等等问题。
3.配置(看好不爬坑)
我们选择11.0.0.15做rocketmq调度寻址器(nameserver)
3.1 配置一(只列出了修改的行)
vim /usr/local/rocketmq/bin/runserver.sh
#!/bin/sh
JAVA_HOME=/usr/local/jdk #添加变量
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m" #你确定你们的机器有如此大的内存
#这里runserver.sh配置完成
3.2 配置二(只列出了修改的行)
vim /usr/local/rocketmq/bin/runbroker.sh
#!/bin/sh
JAVA_HOME=/usr/local/jdk #添加变量
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m" #你确定你的内存很大
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=1g" #你确定你的内存有16G
3.3 启动寻址器11.0.0.15 配置三(寻址器启动一个即可)
#替换 sed -i 's#${user.home}#/usr/local/rocketmq#g' /usr/local/rocketmq/conf/*.xml #做host解析 vim /etc/hosts ip1 hostname1 ip2 hostname2 #启动mqnamesrv查看 nohup sh /usr/local/rocketmq/bin/mqnamesrv & netstat -luntp #可以看见一个9876端口,寻址器启动成功
配置双主(为了方便将旧的rocketmq进行切换,如果是使用旧的mq寻址器,后面的新mq服务器则可以不启动寻址器)
这里选择conf目录中的2m-noslave配置文件(自己根据需求配置)
cd /usr/local/rocketmq/conf/2m-noslave
vim broker-a.properties
brokerClusterName=DefaultCluster #集群名称 brokerName=broker-a #集群中第一台broker的名称,可以自己设,如果不是第一台可以使用a1啥的 brokerId=0 #0代表主 >0从 namesrvAddr=11.0.0.15:9876 #假如有一台旧的寻址器11.0.0.12:9876(则填) brokerIP1=11.0.0.15 defaultTopicQueueNums=4 listenPort=10911 #broker监听端口 deleteWhen=04 fileReservedTime=120 mapedFileSizeCommitLog=1073741824 mapedFileSizeConsumeQueue=50000000 destroyMapedFileIntervalForcibly=120000 redeleteHangedFileInterval=120000 diskMaxUsedSpaceRatio=88 storePathRootDir=/data/rocketmq/store storePathCommitLog=/data/rocketmq/store/commitlog flushIntervalCommitLog=1000 flushCommitLogTimed=false maxTransferBytesOnMessageInMemory=262144 maxTransferCountOnMessageInMemory=32 maxTransferBytesOnMessageInDisk=65536 maxTransferCountOnMessageInDisk=8 accessMessageInMemoryMaxRatio=40 messageIndexEnable=true messageIndexSafe=false flushCommitLogLeastPages=4 flushConsumeQueueLeastPages=2 flushCommitLogThoroughInterval=10000 flushConsumeQueueThoroughInterval=60000 brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH checkTransactionMessageEnable=false sendMessageThreadPoolNums=128 pullMessageThreadPoolNums=128
3.4 配置四
#创建配置文件中数据目录 mkdir /data/rocketmq/store/commitlog -p mkdir /usr/local/rocketmq/logs/rocketmqlogs -p #启动mqbroker nohup sh /usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties & #如果看到10909 10911 10912代表这台mq启动成功了
3.5配置五
#第二台mq配置大致相同(不需要启动寻址器mqnamesrv),依然是配置broker-a.properties #寻址器依然是配 namesrvAddr=11.0.0.15:9876 #broker名称 brokerName=broker-a1 #本机IP brokerIP1=11.0.0.16 #到这里其实可以启动broker了 nohup sh /usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties &
3.6 高兴的太早还不行
#这里还需要将第一台mq的store目录拷贝到新mq的对应目录 scp -rp root@11.0.0.15:/data/rocketmq/store /data/rocketmq/ #有的同学可能不在/data目录(自己查看内容是否正确,还有位置) scp -rp root@11.0.0.15:/root/store /data/rocketmq/
自己测试,最好安装一个console,可以查看到流量是否过去
#在主rocketmq节点上下载一下rocketmq-externals打个jar包,启动一下,web页面去看 #自己去玩 #所以你再也不担心主mq挂了,三主也可以的,只不过名称以此类推,自己定义,这样你就完成了简易的横向扩展。 cd /usr/local/src/ git clone https://github.com/apache/rocketmq-externals.git cd rocketmq-externals/rocketmq-console mvn -DskipTests clean install -U cd target/ java -jar rocketmq-console-ng-1.0.0.jar
相关文章推荐
- (三)RocketMQ集群部署实践
- (三)RocketMQ集群部署实践
- docker入门实战(理论+实践)系列--docker部署和镜像容器管理
- Mac OS X 10.5系统部署实践
- Mac OS X 10.5快速系统部署实践-计划(1) v1
- Jruby On Rails 的安装及部署实践
- Docker持续部署图文详解 | 高效运维最佳实践06
- Docker部署WordPress LNMP(Nginx PHP MySQL)环境实践
- Docker部署WordPress LNMP(Nginx PHP MySQL)环境实践
- .Net core2.0+Mysql5.7部署到CentOS7.5完整实践经验
- rocket.chat安装部署
- redis总结集群模式加哨兵模式,理论讲解实践部署
- rocketMq 配置部署(一)
- Docker实践--部署Nodejs应用
- Istio流量管理实践之(3): 基于Istio实现流量对比分析
- ZABBIX实践(一) 服务端部署和安装
- Websphere Application Server 环境配置与应用部署最佳实践
- 【技术维新 践行精彩】WebSphere7集群部署实践与总结
- (原创)Rocketmq分布式消息队列的部署与监控