rocketmq安装.docx
- 文档编号:11011921
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:24
- 大小:1.03MB
rocketmq安装.docx
《rocketmq安装.docx》由会员分享,可在线阅读,更多相关《rocketmq安装.docx(24页珍藏版)》请在冰豆网上搜索。
rocketmq安装
RocketMQ安装与配置
1.安装操作系统
创建一个CentOS虚拟机,采用的版本是CentOS-6.864bit。
内存、处理器、网络适配器设置如下图所示:
内存2G,处理器是双核,硬盘为SCSI硬盘,容量为20G。
在后续的安装中,请选择“基本存储设备”,选择安装模式是Minimal,此模式下安装最少的软件包,后续如果需要什么,会采用Yum安装。
刚安装完CentOS,使用Yum命令安装一些常用的软件,如:
yum–yinstallgcc。
会出现如下错误:
这是因为这个版本默认安装后,配置文件中没有配置DNS。
通过更改配置文件来解决。
使用vi打开DNS的配置文件进行修改:
在命令提示符中输入:
vi /etc/sysconfig/network-scripts/ifcfg-eth0。
用vi打开这个文件后,请按照下图配置。
设置好后。
重启CentOS后一切就正常了。
配置好静态IP地址之后,就可以使用xshell进行操作了。
2.安装所需要的软件
2.1.安装vim
虽然Linux系统中有自带的vi文本编辑器,但是还是需要功能更为强大的vim文本编辑器。
但是在Minimal模式下安装的CentOS并没有安装vim,下面需要采用Yum进行安装vim。
输入yuminstallvim-y,执行安装vim,下面的是表示安装成功。
2.2.安装JDK
如果CentOS安装时选择了安装自带的JDK,那么需要卸载掉,因为CentOS自带的JDK是openJDK,然而安装RocketMQ需要安装原生的JDK。
卸载方法请自行查找。
下面将描述如何安装原生的JDK。
切换到/usr/local目录下,在此目录下新建文件夹jdk1.8,用于存放jdk的安装包,命令如下:
#cd/usr/local
#mkdirjdk1.8
下图为结果:
使用各种方法将JDK的安装包传入到/usr/local/jdk1.8目录中。
解压安装包:
#tarxvfjdk-8u144-linux-x64.tar.gz
为jdk1.8.0_144创建软连接:
/usr/local/jdk,命令是:
#ln-s/usr/local/jdk1.8/jdk1.8.0_144/usr/local/jdk
这样做得好处是如果后续需要修改jdk版本,那么只需要重新创建软连接即可,也就是创建指向新版本jdk的软连接。
那么在环境变量中配置的内容将无需更改。
配置JDK的环境变量,使用命令:
#vim/etc/profile
在文件最后,输入JDK的环境变量,内容为:
exportJAVA_HOME=/usr/local/jdk
exportJRE_HOME=/usr/local/jdk/jre
exportPATH=$PATH:
/usr/local/jdk/bin
exportCLASSPATH=./:
/usr/local/jdk/lib:
/usr/local/jdk/jre/lib
保存退出后执行命令使配置生效:
#source/etc/profile
可通过命令验证是否安装成功:
2.3.安装MAVEN
切换到/usr/local目录下,在此目录下新建文件夹apache-maven-3.5.0,用于存放maven的安装包,命令如下:
#cd/usr/local
#mkdirapache-maven-3.5.0
下图为结果:
使用各种方法将MAVEN的安装包传入到/usr/local/apache-maven-3.5.0目录中。
解压安装包:
#tarxvfapache-maven-3.5.0-bin.tar.gz
创建软连接:
配置MAVEN的环境变量,使用命令:
#vim/etc/profile
在文件最后,输入JDK的环境变量,内容为:
exportM2_HOME=/usr/local/maven
exportPATH=$PATH:
$JAVA_HOME/bin:
$M2_HOME/bin
保存退出后执行命令使配置生效:
#source/etc/profile
验证:
2.4.安装Git
依次执行
1.#安装Git
2.yum install -y epel-release
3.rpm -ivh https:
//centos6.iuscommunity.org/ius-release.rpm
4.yum list git2u
5.yum install -y git2u
6.git --version
验证:
3.编译RocketMQ
在root的家目录下进行编译。
先将RocketMQ源代码ZIP导入到root的家目录。
本文采用的RocketMQ版本是4.2.0,因此导入的文件为rocketmq-all-4.2.0-source-release.zip。
如果发现unzip没有安装,请执行yum命令安装unzip:
yum-yinstallunzip
解压压缩包:
unziprocketmq-all-4.2.0-source-release.zip
进入到rocketmq-all-4.2.0目录:
cdrocketmq-all-4.2.0/
执行编译:
mvn-Prelease-all-DskipTestscleaninstall-U
这表明编译成功,编译后生成的结果如下:
4.安装配置RocketMQ
4.1.Broker集群配置方式及优缺点
1.单个Master
这种方式风险较大,一旦Broker 重启或者宕机时,会导致整个服务不可用,不建议线上环境使用。
2.多Master 模式
一个集群无Slave,全是Master,例如2 个Master 或者3 个Master
优点:
配置简单,单个Master 宕机或重启维护对应用无影响,在磁盘配置为RAID10 时,即使机器宕机不可恢复情况下,由与RAID10 磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢)。
性能最高。
缺点:
单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到受到影响。
3.多Master 多Slave 模式,异步复制
每个Master 配置一个Slave,有多对Master-Slave,HA 采用异步复制方式,主备有短暂消息延迟,毫秒级。
优点:
即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,因为Master 宕机后,消费者仍然可以从Slave 消费,此过程对应用透明。
不需要人工干预。
性能同多Master 模式几乎一样。
缺点:
Master 宕机,磁盘损坏情况,会丢失少量消息。
4.多Master 多Slave 模式,同步双写
每个Master 配置一个Slave,有多对Master-Slave,HA 采用同步双写方式,主备都写成功,向应用返回成功。
优点:
数据与服务都无单点,Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高
缺点:
性能比异步复制模式略低,大约低10%左右,发送单个消息的RT 会略高。
目前主宕机后,备机不能自动切换为主机,后续会支持自动切换功能。
以上Broker 与Slave 配对是通过指定相同的brokerName 参数来配对,Master 的BrokerId 必须是0,Slave的BrokerId 必须是大与0 的数。
另外一个Master 下面可以挂载多个Slave,同一Master 下的多个Slave 通过指定不同的BrokerId 来区分。
本文先采用4.多Master 模式进行安装配置。
4.2.服务器环境
序号
IP
角色
1
192.168.23.100
nameServer1
2
192.168.23.101
nameServer2
3
192.168.23.100
brokerServer1_master
4
192.168.23.101
brokerServer2_master
5
192.168.23.100
brokerServer2_slave
6
192.168.23.101
brokerServer1_slaves
4.3.安装RocketMQ
切换到/usr/local目录下,在此目录下新建目录apache-rocketmq,用于存放RocketMQ的安装包,命令如下:
#cd/usr/local
#mkdirapache-rocketmq
下图为结果:
解压编译后生成的tar文件到apache-rocketmq目录中:
tar-zxvfapache-rocketmq.tar.gz-C/usr/local/apache-rocketmq
创建软连接:
到这里,RocketMQ已经安装完毕,为了完成双主模式的配置,至少需要两台机器,因此还需要一台虚拟机。
4.4.复制虚拟机
有两种方法实现另一台虚机的安装,第一种是按照上面的步骤安装一台新的虚拟机,方法一样不再累述,第二种方法是将虚拟机clone出一台,然后修改网络配置即可。
1.克隆选中的虚拟机,需要克隆完整的虚拟机
复制成功:
2.修改MAC地址,因为是两台虚拟机集群,因此MAC地址不能相同,需要修改新克隆的虚拟机MAC地址。
点击生成。
记下MAC地址。
00:
50:
56:
3C:
90:
02
3.启动新clone的虚拟机,修改网络配置。
vim/etc/sysconfig/network-scripts/ifcfg-eth0
用上面记下的MAC地址修改HWADDR,修改IPADDR地址。
如下图:
4.修改启动的网卡:
修改/etc/udev/rules.d/70-persistent-net.rules
重命名网卡配置文件
编辑网卡配置文件
重启服务器
只需要修改NAME就好了。
5.执行ifconfig–a验证配置情况,如下图配置成功。
R
仔细检查,发现除了网络设置以外,所有的内容都一致,克隆成功。
4.5.Hosts添加信息【两台机器】
在两个服务器运行命令
#vim/etc/hosts
4.6.创建存储路径【两台机器】
因为在新的版本Rocketmq之后,当一个机器执行启动Broker之后,会在数据存储目录中创建一个LOCK的锁,如果还有这个Rocketmq启动另外的Broker(在这个例子中的slave)会报LOCK的错误,因此需要创建两个数据存储路径,一个给主Broker使用,另外一个给从Broker使用。
在两台机器上分别执行命令:
◆主Broker
#mkdir-p/usr/local/rocketmq/store/{commitlog,consumequeue,index}
◆从Broker
#mkdir-p/usr/local/rocketmq/store-slave/{commitlog,consumequeue,index}
4.7.RocketMQ配置文件【两台机器】
在两台机器上分别执行命令进行配置程序的设置:
1.Rocketmq1:
可以看到在同一个机器上面的listenPort是不一样的,因为amaster和bslave公用一个rocketmq,那么为了区分所设置的端口是不一样的
1.1.#vim/usr/local/rocketmq/conf/2m-2s-sync/broker-a.properties
brokerClusterName=tl-rocketmq-cluster
brokerName=broker-a
brokerId=0
namesrvAddr=rocketmq1:
9876;rocketmq2:
9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
#主端口号
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
#主broker路径
storePathRootDir=/usr/local/rocketmq/store
storePathCommitLog=/usr/local/rocketmq/store/commitlog
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
1.2.#vim/usr/local/rocketmq/conf/2m-2s-sync/broker-b-s.properties
brokerClusterName=tl-rocketmq-cluster
brokerName=broker-b
#0表示Master,>0表示Slave
brokerId=1
namesrvAddr=rocketmq1:
9876;rocketmq2:
9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
#从端口号
listenPort=10921
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
#从broker路径
storePathRootDir=/usr/local/rocketmq/store-slave
storePathCommitLog=/usr/local/rocketmq/store-slave/commitlog
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
#角色
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
2.Rocketmq2:
#vim/usr/local/rocketmq/conf/2m-2s-sync/broker-b.properties
brokerClusterName=tl-rocketmq-cluster
brokerName=broker-b
brokerId=0
namesrvAddr=rocketmq1:
9876;rocketmq2:
9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
storePathRootDir=/usr/local/rocketmq/store
storePathCommitLog=/usr/local/rocketmq/store/commitlog
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
#vim/usr/local/rocketmq/conf/2m-2s-sync/broker-a-s.properties
brokerClusterName=tl-rocketmq-cluster
brokerName=broker-a
#0表示Master,>0表示Slave
brokerId=1
namesrvAddr=rocketmq1:
9876;rocketmq2:
9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10921
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
storePathRootDir=/usr/local/rocketmq/store-slave
storePathCommitLog=/usr/local/rocketmq/store-slave/commitlog
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
4.8.修改日志配置文件【两台机器】
在两台机器上分别执行命令:
#mkdir-p/usr/local/rocketmq/logs
#cd/usr/local/rocketmq/conf&&sed-i's#${user.home}#/usr/local/rocketmq#g'*.xml
4.9.开放9876端口【两台机器】
在两台机器上分别配置iptables。
编辑/etc/sysconfig/iptables文件,执行命令:
vim/etc/sysconfig/iptables
加上下面的一行配置:
重启服务使修改起效:
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport9876-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport10909-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport10919-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport10911-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport10921-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport10912-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport10923-jACCEPT
serviceiptablesrestart
4.10.修改启动脚本参数【两台机器】
在两台机器上分别执行命令,并且修改相应文件
#vim/usr/local/rocketmq/bin/runbroker.sh
#vim/usr/local/rocketmq/bin/runserver.sh
至此,配置完毕。
5.启动RocketMQ
5.1.启动NameServer【两台机器】
在两台机器上分别执行命令:
#cd/usr/local/rocketmq/bin
#nohupshmqnamesrv&
可用jps验证:
在两台机器上分别执行命令:
tail-f-n500/usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
可以查看nameserver的日志。
5.2.启动BrokerServer
BrokerA:
执行命令:
#cd/usr/local/rocketmq/bin
#nohupshmqbroker-c/usr/local/roc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- rocketmq 安装