rocketmq安装.docx

上传人:b****4 文档编号:5034777 上传时间:2023-05-07 格式:DOCX 页数:24 大小:1.03MB
下载 相关 举报
rocketmq安装.docx_第1页
第1页 / 共24页
rocketmq安装.docx_第2页
第2页 / 共24页
rocketmq安装.docx_第3页
第3页 / 共24页
rocketmq安装.docx_第4页
第4页 / 共24页
rocketmq安装.docx_第5页
第5页 / 共24页
rocketmq安装.docx_第6页
第6页 / 共24页
rocketmq安装.docx_第7页
第7页 / 共24页
rocketmq安装.docx_第8页
第8页 / 共24页
rocketmq安装.docx_第9页
第9页 / 共24页
rocketmq安装.docx_第10页
第10页 / 共24页
rocketmq安装.docx_第11页
第11页 / 共24页
rocketmq安装.docx_第12页
第12页 / 共24页
rocketmq安装.docx_第13页
第13页 / 共24页
rocketmq安装.docx_第14页
第14页 / 共24页
rocketmq安装.docx_第15页
第15页 / 共24页
rocketmq安装.docx_第16页
第16页 / 共24页
rocketmq安装.docx_第17页
第17页 / 共24页
rocketmq安装.docx_第18页
第18页 / 共24页
rocketmq安装.docx_第19页
第19页 / 共24页
rocketmq安装.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

rocketmq安装.docx

《rocketmq安装.docx》由会员分享,可在线阅读,更多相关《rocketmq安装.docx(24页珍藏版)》请在冰点文库上搜索。

rocketmq安装.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2