Linux服务器环境部署系列05

基础组件安装:

1、安装RocketMQ

1.1、服务器环境
序号  IP  用户名 密码  角色  模式
1   192.168.100.24  root        nameServer1,brokerServer1 Master1   2m-noslave
2   192.168.100.25  root        nameServer2,brokerServer2 Master2   2m-noslave
1.2、配置host信息
#使用 vi 或者 vim 编辑/etc/hosts
192.168.100.24  rocketmq-nameserver1
192.168.100.24  rocketmq-master1
192.168.100.25  rocketmq-nameserver2
192.168.100.25  rocketmq-master2
1.3、安装RocketMQ
#上传安装压缩包
使用rz命令上传本地已经下载好的alibaba-rocketmq-3.2.6.tar.gz安装包至/usr/local目录

#解压安装包
tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local

#重命名(添加版本号)
mv alibaba-rocketmq alibaba-rocketmq-3.2.6

#创建软连接
ln -s alibaba-rocketmq-3.2.6 rocketmq
1.4、创建存储路径
mkdir /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store/commitlog
mkdir /usr/local/rocketmq/store/consumequeue
mkdir /usr/local/rocketmq/store/index
1.5、修改RocketMQ配置文件
1.5.1、编辑broker配置文件
vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties
vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties
1.5.2、broker-a|broker-b详细配置
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a|broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/appserver/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/appserver/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/appserver/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/appserver/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/appserver/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/appserver/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
1.6、修改日志配置文件(两台服务器)
mkdir -p /usr/local/rocketmq/logs 
cd /usr/local/rocketmq/conf 
sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml 
1.7、修改启动脚本
1.7.1、修改broker的JVM启动参数
vim /usr/local/rocketmq/bin/runbroker.sh

#==================================================================
# 开发环境JVM Configuration
#==================================================================
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"
1.7.2、修改nameServer的JVM启动参数
vim /usr/local/rocketmq/bin/runserver.sh

#==================================================================
# 开发环境JVM Configuration
#==================================================================
JAVA_OPT="${JAVA_OPT} -server –Xms2g –Xmx2g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"

1.8、启动NameServer(两台服务器)

注意:必须先启动NameServer,然后再启动BrokerServer。

cd /usr/local/rocketmq/bin
nohup sh mqnamesrv &
1.9、启动Broker
1.9.1、启动BrokerServer A【192.168.100.24】
cd /usr/local/appserver/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
1.9.2、启动BrokerServer B【192.168.100.25】
cd /usr/local/appserver/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &

检测服务是否启动正常的方式有如下三种:

a>侦听端口是否正常:
netstat –ntlp
b>或者通过jps命令查看进程是否存在:
### Java Virtual Machine Process Status Tools
jps
c>查看启动日志:
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
1.10、Broker启动常见问题

多网卡服务器环境下,会出现com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <10.105.23.114:10911> failed异常。

解决办法:

可参考RocketMQ用户指南的12章,Broker配置参数一节。

a> 获取Broker的默认配置:
vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties
b> Broker启动时,如何加载配置:
### 第一步:生成Broker默认配置模板
sh mqbroker -m > broker.p

### 第二步:修改配置文件,即broker.p文件
注:将namesrvAddr=127.0.0.1:9876等配置信息补全,brokerServer启动不了的很大部分原因,是由于生成的配置文件信息不全造成的。至于为何会造成读取以及生成配置信息丢失的原因,在这不作深究。

### 第三步:加载修改完善过的配置文件
nohup sh mqbroker -c broker.p 

Broker运行过程中,动态修改broker的配置,注意:并非所有配置项都支持动态变更。

### 修改地址为192.168.1.100:10911的Broker消息保存时间为24小时
sh mqadmin updateBrokerConfig -b 192.168.1.100:10911 -k fileReservedTime 24
1.11、RocketMQ监控管理平台

在tomcat中部署rocketmq-console.war


image.png
1.12、数据清理
cd /usr/local/appserver/rocketmq/bin
# sh mqshutdown broker
# sh mqshutdown namesrv
# 等待停止
# rm -rf /usr/local/appserver/rocketmq/store
# mkdir /usr/local/appserver/rocketmq/store
# mkdir /usr/local/appserver/rocketmq/store/commitlog
# mkdir /usr/local/appserver/rocketmq/store/consumequeue
# mkdir /usr/local/appserver/rocketmq/store/index
# 按照上面步骤重启NameServer与BrokerServer
1.13、客户端验证(静态寻址方式)
1.13.1、防火墙开放8080,9876,10911端口

其中,8080为nginx的侦听端口,9876为nameServer的默认端口,10911为broker-a的默认端口。

vim /etc/sysconfig/iptables

#新增如下入站规则:
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9876 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 10911 -j ACCEPT

#使得防火墙新建的规则生效
service iptables save
1.13.2、配置nginx(修改nginx.conf配置文件,使用静态寻址方式)
#在http节点域下面新增server模块:
server {
        listen 8080;
        server_name localhost;

        location /rocketmq {
                root /data/nginx;
                index index.html index.htm;
        } 
    }
1.13.3、创建html文件
#创建目录
mkdir -p /data/nginx/rocketmq/nsaddr/

#切换目录
cd /data/nginx/rocketmq/nsaddr/

#创建index.html文件
vim index.html

#html内容写如下(此处ip为nginx服务器所在ip,使用静态寻址方式)
192.168.100.24:9876;
1.13.4、启动nginx
#切换到nginx所在的安装目录
cd /usr/local/nginx/sbin/

#启动nginx
sh ./nginx

#测试nginx配置文件的语法是否配置正确
./nginx –t

#重新加载nginx的配置文件使之立即生效
./nginx -s reload
image.png
1.13.5、查看一下nginx是否已经启动
ps –ef | grep nginx
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容