rocketMQ(二 )Centos7 集群
rocketMQ集群:
在运用中流程一般 是在程序中使用代码编辑生产者,将所需要的消息发送到rocketmq中,然后另一个程序编辑消费者从rocketmq里面获取消息。rocketmq集群 需要对nameServer 和Broker 集群
准备两台服务器,两台机器都是master,如果要搞一主N备,修改相应的配置文件
ip:192.168.31.144 rocketmq-nameserver1 rocketmq-master1
ip:192.168.31.165 rocketmq-nameserver2 rocketmq-master2
1.安装jdk环境:
https://www.oracle.com/technetwork/java/javase/downloads/index.html
下载:
1.上传该文件到:/usr/local
2.解压 tar -zxvf jdk-7u80-linux-x64.tar.gz
3.修改配置文件
4.vi /etc/profile
在末尾添加配置文件:
export JAVA_HOME=/usr/local/jdk1.7.0_80
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
刷新配置文件:
source /etc/profile(该命令可以让 当前的配置文件立刻生效。不需要在重启服务器)
5.测试jdk安装是否成功: java -version
如图所示:表示成功
2.rocketmq集群:
1.下载mq http://rocketmq.apache.org/dowloading/releases/
2.上传下载包到 /usr/local
3.解压文件
# 上传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
4.创建存储路径:
mkdir /usr/local/rocketmq/store
# mkdir /usr/local/rocketmq/store/commitlog
# mkdir /usr/local/rocketmq/store/consumequeue
# mkdir /usr/local/rocketmq/store/index
5.修改rocketmq的核心配置文件:
broker-a.properties文件配置
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#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/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/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
broker-b.properties文件配置
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=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/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/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
6.在本地host文件中 添加域名解析
配置文件中:namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876 此地址需要域名解析:
打开 hosts文件 vi /etc/hosts
添加对应的域名解析:
至于划横线的地方,有的机器如果不添加 则可能在启动NameServer的时候会报错 提示没有主机名关联的地址
可以通过hostname命令,查看主机名字
修改完配置以后 则需要刷新网卡:
service network restart
如果是虚拟机克隆出来的服务器,刷新网卡的时候 如果报错,则可以查看:vi /etc/sysconfig/network-scripts/ifcfg-xxx 文件(每台机器名字可能不一样)
修改HWADDR的mac地址
mac地址可以两种方式查看:
或者:
有的机器没有HWADDR 这个配置名字,如果没有则添加上去。修改完配置以后 重新刷新网卡service network restart,如果刷新还报错。可以尝试重新启动
可以通过ping的方式 检测 hosts文件是否配置成功:
以上:上传 解压,修改本地hosts文件,刷新网卡,关闭防火墙等操作两台服务器都应该进行相应的操作,所有的操作完成了,则接下来就是启动 rocketmq的
3 .关于NameServer和brok的启动
1.进入 cd /usr/local/rocketmq/bin
2. nohup sh mqnamesrv & 后台启动nameServer 然后通过jps 命令 查看当前是否正常启动
ps:第一次操作的时候,总是会在这里出错,启动的时候 提示:
网上 查了一大堆原因,也不知道是怎么回事,可以换sh mqnamesrv 这种方式启动,如果有报错 则会打印报错日志,如果启动的时候如图所示:
表示 正常启动成功,当然这是前端启动方式,ctrl+c 就自然退出了,需要切换成后台启动形式:
所以启动这里,你可以先后台启动,然后通过jps查看 是否启动成功,如果没有启动成功 则 前台方式启动,看看打印的错误日志。例如:
成功启动以后 则能看到:
如果启动的时候因为内存分配原因 导致无法启动成功,则需要修改配置文件:
vi /usr/local/rocketmq/bin/runbroker.sh
2.启动brokerServer
1.cd /usr/local/rocketmq/bin
2.nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 & (如果是另一台机器,则启动时候需要用到是 broker -b.properties文件)如图:
两台机器都完成了上面的步骤,可以搭建一个rocketmq的后端管理系统
1. 下载 tomcat(可以将tomcat放在两台服务器中的任何一台都可以了 tomcat 不需要集群)
2.下载rocketmq的后端管理平台所需要的war包
3.将war包放到tomcat/webapps目录(启动或者重启tomcat的时候自动解压war包了)
4.修改位于:/usr/local/apache-tomcat-7.0.65/webapps/rocketmq-web-console/WEB-INF/classes 下的config.properties文件 将集群的ip地址配置进去
5.启动tomcat 输入请求地址栏:
http://192.168.31.197:8080/rocketmq-web-console/cluster/list.do
6.如果能看到以上图示,表示rocketmq搭建成功
rocketMQ(二 )Centos7 集群的更多相关文章
- Spark项目之电商用户行为分析大数据平台之(二)CentOS7集群搭建
一.CentOS7集群搭建 1.1 准备3台centos7的虚拟机 IP及主机名规划如下: 192.168.123.110 spark1192.168.123.111 spark2192.168.12 ...
- RocketMQ(2)---Docker集群部署RocketMQ
RocketMQ(2)-Docker集群部署RocketMQ =前言= 1.因为自己只买了一台阿里云服务器,所以RocketMQ集群都部署在单台服务器上只是端口不同,如果实际开发,可以分别部署在多台服 ...
- CentOS7集群环境Elastic配置
CentOS7集群环境Elastic配置 (首先去官网下载elasticsearch的source code并解压到/usr/soft目录下) (以下默认root账户) 1.更改配置文件 文件路径:/ ...
- RocketMQ高可用集群
集群支持: RocketMQ天生对集群的支持非常友好 单Master: 优点:除了配置简单没什么优点 缺点:不可靠,该机器重启或宕机,将导致整个服务不可用 多Master: 优点:配置简单,性能最高 ...
- rocketMq安装及集群配置
网上关于rocketMq安装.集群配置的文章有很多,作为一个初学者,跟着网上的各种教程安装遇到了各种坑,可谓是一路坎坷.本文记录下rocketMq安装的完整过程.希望对你有一点帮助 安装rocketM ...
- rocketmq高可用集群部署(RocketMQ-on-DLedger Group)
rocketmq高可用集群部署(RocketMQ-on-DLedger Group) rocketmq部署架构 rocketmq部署架构非常多,都是为了解决一些问题,越来越高可用,越来越复杂. 单ma ...
- Elasticsearch(二)--集群原理及优化
一.ES原理 1.索引结构ES是面向文档的 各种文本内容以文档的形式存储到ES中,文档可以是一封邮件.一条日志,或者一个网页的内容.一般使用 JSON 作为文档的序列化格式,文档可以有很多字段,在创建 ...
- RocketMQ的安装配置:配置jdk环境,配置RocketMQ环境,配置集群环境,配置rocketmq-console
RocketMQ的安装配置 演示虚拟机环境:Centos64-1 (D:\linuxMore\centos6_64) root / itcast : 固定IP 192.168.52.128 一,配置J ...
- Dubbo+zookeeper构建高可用分布式集群(二)-集群部署
在Dubbo+zookeeper构建高可用分布式集群(一)-单机部署中我们讲了如何单机部署.但没有将如何配置微服务.下面分别介绍单机与集群微服务如何配置注册中心. Zookeeper单机配置:方式一. ...
随机推荐
- Java的URL类(一)
转:https://www.cnblogs.com/blackiesong/p/6182038.html Java的URL类(一) Java的网络类可以让你通过网络或者远程连接来实现应用.而且,这个平 ...
- JavaScript·aJax
1.ajax 无刷新数据获取,ajax能且仅能从服务器读取文件 ajax_string ajax_数组 ajax_json ajax_分页 2.ajax原理 ajax请求: 1.创建ajax对象2.连 ...
- 【笔记】.NET开发环境下使用PostgreSQL+Oracle_fdw 实现两个数据库之间数据交互操作(二)
一 新的可视化工具 因为前文所提到的,看不到外部服务器和外部表的问题,我更换了可视化工具. 好用的新工具PostgreSQL Maestro! 当然如此好用的工具不是免费的,如果想免费使用还请自己去找 ...
- 常见的CSS
/***** Selector Hacks ******/ /* IE6 and below */ * html #uno { color: red } /* IE7 */ *:first-child ...
- ES5数组、对象常用方法总结
数组方法: Array.isArray(items);判断判断一个变量是否包含数组数据: forEach(function(value, index, fullArray){ }); every(fu ...
- Debug程序的使用
一.什么是Debug程序: Debug是DOS, Windows(但是Win7 64位没有,8 10不清楚.)都提供的实模式程序的调试工具, 使用它,可以查看CPU各种寄存器中的内容,内存的情况和在机 ...
- Linux中(Ubuntu18.04.x/CentOS)mysql8.0.x安装/配置/部署/启动
The MySQL Connectors and APIs are the drivers and libraries that you use to connect applications in ...
- java.lang.UnsupportedClassVersionError: JVMCFRE003解决方法--jdk 1.6 中switch的参数无法使用String类型
在jdk 1.6版本中,switch的参数无法使用String类型,只支持int,char,enum类型. 1.6版本之前不支持switch语句存在字符串的判断,升级到1.7或1.8及以上版本即可.
- windows 安装touch指令
if you are using node.js just use npm to install it on Windows: C:\npm install touch-cli -g
- 运行Tomcat报错 解决方法
The APR based Apache Tomcat Native library which allows optimal performance in production environmen ...