rocketmq4.1.0部署及流量切换实践(代码片段)

author author     2022-10-22     300

关键词:

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
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
#启动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 [email protected]:/data/rocketmq/store /data/rocketmq/

#有的同学可能不在/data目录(自己查看内容是否正确,还有位置)
scp -rp [email protected]:/root/store /data/rocketmq/

自己测试,最好安装一个console,可以查看到流量是否过去

#在主rocketmq节点上下载一下rocketmq-externals打个jar包,启动一下,web页面去看
#自己去玩
#所以你再也不担心主mq挂了,三主也可以的,只不过名称以此类推,自己定义,这样你就完成了简易的横向扩展。

jenkinspipeline部署实践及重点问题分析(代码片段)

...格或者maven风格来创建jenkinsitem,虽然也能实现自动化部署,但是面对相对复杂的构建需求时可能就不太好实现。一般正式的项目,除了基本的拉取代码、编译代码、运行junit、打包、启动或者重启外,可能还会涉... 查看详情

ngrinder压力测试实践--ngrinder介绍及部署(代码片段)

...预约或立刻开始第四步:监测过程,查看结果ngrinderDocker部署ngrinder分为控制器和agent两个部分,agent可以部署多台,提升压测能力docker-compose 查看详情

夯实kafka知识体系及基本功「实践操作篇」单机部署实践手册(2.8.0)(代码片段)

来一段舞蹈前提回顾下载kafkawgethttps://archive.apache.org/dist/kafka/0.8.0/kafka_2.8.0-0.8.0.tar.gz或者curl-Ohttps://archive.apache.org/dist/kafka/0.8.0/kafka_2.8.0-0.8.0.tar.gz解压缩tar-vxfkafka_2.8.0-0.8.0.tar.gz修改 查看详情

istio实践-路由控制及多应用部署(netcore&springboot)

前言:接上一篇istio应用部署及服务间调用,本文介绍通过构建.netcore与springboot简单服务应用,实现服务间调用及相关路由控制等1、.netcore代码介绍及应用部署新建.netcorewebapi服务项目,添加简单服务调用方法(getStrByServiceName与g... 查看详情

openstack实践系列①openstack简介及基础环境部署

OpenStack实践系列①openstack简介及基础环境部署一、OpenStack初探1.1OpenStack简介 OpenStack是一整套开源软件项目的综合,它允许企业或服务提供者建立、运行自己的云计算和存储设施。Rackspace与NASA是最初重要的两个贡献者,前者提... 查看详情

猿创征文|tensorflow部署及最佳实践(代码片段)

📢📢📢📣📣📣哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验一位上进心十足的【大数据领域博主】!😜😜😜中国DBA联盟(ACDU)成员,目前从 查看详情

基于jupyterlab的dash应用开发环境部署实践及问题解决(代码片段)

Dash是用于搭建响应式Web应用的Python开源库,Dash目标是建立数据分析性应用的Python框架,不需要直接使用JavaScript,并可以灵活嵌入HTML标签方式定制页面,框架是基于Plotly.js、React和Flask构建,可以直接结合数据... 查看详情

基于jupyterlab的dash应用开发环境部署实践及问题解决(代码片段)

Dash是用于搭建响应式Web应用的Python开源库,Dash目标是建立数据分析性应用的Python框架,不需要直接使用JavaScript,并可以灵活嵌入HTML标签方式定制页面,框架是基于Plotly.js、React和Flask构建,可以直接结合数据... 查看详情

机器学习模型高性能高并发部署实践探索

...践方案纵向扩展横向扩展三高架构关键点使用pythonweb框架部署机器学习模型后端常见高并发框架评测模型部署与推理简介模型管理阿里云模型管理参考高并发模型推理服务的优化方向K8s弹性伸缩原理基于模型管理的一站式机器学... 查看详情

kafka万亿级消息实践之资源组流量掉零故障排查分析

一、Kafka集群部署架构为了让读者能与小编在后续的问题分析中有更好的共鸣,小编先与各位读者朋友对齐一下我们Kafka集群的部署架构及服务接入Kafka集群的流程。为了避免超大集群我们按照业务维度将整个每天负责十万亿... 查看详情

kafka万亿级消息实践之资源组流量掉零故障排查分析

作者:vivo互联网服务器团队-LuoMingbo一、Kafka 集群部署架构为了让读者能与小编在后续的问题分析中有更好的共鸣,小编先与各位读者朋友对齐一下我们Kafka集群的部署架构及服务接入 Kafka 集群的流程。为了避免超大集... 查看详情

kafka万亿级消息实践之资源组流量掉零故障排查分析

作者:vivo互联网服务器团队-LuoMingbo一、Kafka 集群部署架构为了让读者能与小编在后续的问题分析中有更好的共鸣,小编先与各位读者朋友对齐一下我们Kafka集群的部署架构及服务接入 Kafka 集群的流程。为了避免超大集... 查看详情

机器学习模型高性能高并发部署实践探索

文章大纲高并发服务简介后端常见高并发框架评测模型部署与推理简介模型管理阿里云模型管理参考高并发模型推理服务的优化方向K8s弹性伸缩原理基于模型管理的一站式机器学习建模平台参考参考文献高并发服务简介高并发意... 查看详情

elasticstack5.1.2集群日志系统部署及实践

 Elasticstack5.1.2集群日志系统部署及实践一、ELKStack简介ELKStack是Elasticsearch、Logstash、Kibana三个开源软件的组合,在实时数据检索和分析场合,三者通常是配合共用的。可参考:https://www.elastic.co/products二、Elasticstack重要组件Elastic... 查看详情

微服务混合云部署实践

专栏上一期我给你讲解了微服务多机房部署的实践,以及需要解决的三个问题。大多数业务在发展到一定阶段,要么出于高可用性的需要,把业务部署在多个机房以防止单个机房故障导致整个服务不可用;要么出... 查看详情

安装部署jasigcasserver及相关实践

jasigcasserver是一个开源的单点登录认证服务器。部署很简单,下载后将war包放入tomcat后启动。需要理解并解决的问题有:一、使tomcat支持httpshttps协议通过ssl和数字证书来保证c/s间的数据传输安全。一般说来非对称加密算法性能要... 查看详情

《一键傻瓜式操作的后台开发框架集锦》timo框架实践及应用

框架部署Timo框架部署及应用框架部署一、准备工作1.1后端技术1.2前端技术1.3环境1.4软件二、开发环境配置三、项目工程配置3.1导入数据库3.2IntelliJIDEA3.3Eclipse四、项目工程结构4.1整体结构4.2代码解析五、运行说明5.1IDEA运行项目-... 查看详情

jenkins使用ftp进行一键部署及回滚2(windows)(项目实践)

...http://www.cnblogs.com/EasonJim/p/6295372.htmlJenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)前提:这一篇是继上一篇http://www.cnblogs.com/EasonJim/p/6092938.html的真实项目实践。思路和大致实现步骤请参照上一篇文章。注意:这篇文章... 查看详情