郑州做网站推广哪家好,怎么进电力建设公司网站,上海网页设计,河南网站建设服务每个 Master 配置一个 Slave#xff0c;有多对Master-Slave#xff0c;HA采用同步双写方式#xff0c;主备都写成功#xff0c;向应用返回成功。 优点#xff1a;数据与服务都无单点#xff0c;Master宕机情况下#xff0c;消息无延迟#xff0c;服务可用性与数据可用性…每个 Master 配置一个 Slave有多对Master-SlaveHA采用同步双写方式主备都写成功向应用返回成功。 优点数据与服务都无单点Master宕机情况下消息无延迟服务可用性与数据可用性都非常高。缺点性能比异步复制模式略低大约低10%左右发送单个消息的RT会略高。目前主宕机后备机不能自动切换为主机后续会支持自动切换功能。 ### 先启动 NameServer### 在机器 A启动第一个 Master### 在机器 B启动第二个 Master### 在机器 C启动第一个 Slave### 在机器 D启动第二个 Slave以上 Broker 与 Slave 配对是通过指定相同的brokerName 参数来配对Master的 BrokerId 必须是 0Slave 的BrokerId 必须是大与 0 的数。另外一个 Master 下面可以挂载多个 Slave同一 Master 下的多个 Slave通过指定不同的 BrokerId来区分。 1. 服务器环境如下图所示四台机器IP位7为主节点149是7的从节点。105是主节点160是105的从节点 序号 IP 用户名 角色 模式
1 192.168.1.7 root nameServer1,brokerServer1 Master1
2 192.168.1.105 root nameServer2,brokerServer2 Master2
3 192.168.1.149 root nameServer3,brokerServer3 Master1-slave1
4 192.168.1.160 root nameServer4,brokerServer4 Master2-slave1 2. Hosts添加信息 IP NAME
192.168.1.7 rocketmq-nameserver1
192.168.1.7 rocketmq-master1
192.168.1.105 rocketmq-nameserver2
192.168.1.105 rocketmq-master2
192.168.1.149 rocketmq-nameserver3
192.168.1.149 rocketmq-master1-slave1
192.168.1.160 rocketmq-nameserver4
192.168.1.160 rocketmq-master2-slave1 3.编辑hosts文件【4台机器】 # vim /etc/hosts 4.上传解压【4台机器】 # 上传alibaba-rocketmq-3.2.6.tar.gz文件至/home/xm6f/dev
# cd /home/xm6f/dev
# tar -zxvf alibaba-rocketmq-3.2.6.tar.gz
# mv alibaba-rocketmq rocketmq 5.创建存储路径【4台机器】 # mkdir /home/xm6f/dev/rocketmq/store
# mkdir /home/xm6f/dev/rocketmq/store/commitlog
# mkdir /home/xm6f/dev/rocketmq/store/consumequeue
# mkdir /home/xm6f/dev/rocketmq/store/index 6.RocketMQ配置文件【4台机器】--该文件有点类似于Redis里面的redis.con # sudo vim /home/xm6f/dev/rocketmq/conf/2m-2s-async/broker-a.properties ##192.168.1.7配置文件
# sudo vim /home/xm6f/dev/rocketmq/conf/2m-2s-async/broker-a-s.properties ##192.168.1.149配置文件
# sudo vim /home/xm6f/dev/rocketmq/conf/2m-2s-async/broker-b.properties ##192.168.1.105配置文件
# sudo vim /home/xm6f/dev/rocketmq/conf/2m-2s-async/broker-b-s.properties ##192.168.1.160配置文件 broker-a.properties文件 #所属集群名字
brokerClusterNamerocketmq-cluster
#broker名字注意此处不同的配置文件填写的不一样
brokerNamebroker-a
#0 表示 Master0 表示 Slave
brokerId0
#nameServer地址分号分割
namesrvAddrrocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9876;rocketmq-nameserver4:9876
#在发送消息时自动创建服务器不存在的topic默认创建的队列数
defaultTopicQueueNums4
#是否允许 Broker 自动创建Topic建议线下开启线上关闭
autoCreateTopicEnabletrue
#是否允许 Broker 自动创建订阅组建议线下开启线上关闭
autoCreateSubscriptionGrouptrue
#Broker 对外服务的监听端口
listenPort10911
#删除文件时间点默认凌晨 4点
deleteWhen04
#文件保留时间默认 48 小时
fileReservedTime120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog1073741824
#ConsumeQueue每个文件默认存30W条根据业务情况调整
mapedFileSizeConsumeQueue300000
#destroyMapedFileIntervalForcibly120000
#redeleteHangedFileInterval120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio88
#存储路径
storePathRootDir/home/xm6f/dev/rocketmq/store
#commitLog 存储路径
storePathCommitLog/home/xm6f/dev/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue/home/xm6f/dev/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex/home/xm6f/dev/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint/home/xm6f/dev/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile/home/xm6f/dev/rocketmq/store/abort
#限制的消息大小
maxMessageSize65536
#flushCommitLogLeastPages4
#flushConsumeQueueLeastPages2
#flushCommitLogThoroughInterval10000
#flushConsumeQueueThoroughInterval60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRoleASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskTypeASYNC_FLUSH
#checkTransactionMessageEnablefalse
#发消息线程池数量
#sendMessageThreadPoolNums128
#拉消息线程池数量
#pullMessageThreadPoolNums128
#强制指定本机IP需要根据每台机器进行修改。官方介绍可为空系统默认自动识别但多网卡时IP地址可能读取错误
brokerIP1192.168.1.7broker-a-s.properties文件 #所属集群名字
brokerClusterNamerocketmq-cluster
#broker名字注意此处不同的配置文件填写的不一样
brokerNamebroker-a
#0 表示 Master0 表示 Slave
brokerId1
#nameServer地址分号分割
namesrvAddrrocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9876;rocketmq-nameserver4:9876
#在发送消息时自动创建服务器不存在的topic默认创建的队列数
defaultTopicQueueNums4
#是否允许 Broker 自动创建Topic建议线下开启线上关闭
autoCreateTopicEnabletrue
#是否允许 Broker 自动创建订阅组建议线下开启线上关闭
autoCreateSubscriptionGrouptrue
#Broker 对外服务的监听端口
listenPort10911
#删除文件时间点默认凌晨 4点
deleteWhen04
#文件保留时间默认 48 小时
fileReservedTime120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog1073741824
#ConsumeQueue每个文件默认存30W条根据业务情况调整
mapedFileSizeConsumeQueue300000
#destroyMapedFileIntervalForcibly120000
#redeleteHangedFileInterval120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio88
#存储路径
storePathRootDir/home/xm6f/dev/rocketmq/store
#commitLog 存储路径
storePathCommitLog/home/xm6f/dev/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue/home/xm6f/dev/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex/home/xm6f/dev/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint/home/xm6f/dev/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile/home/xm6f/dev/rocketmq/store/abort
#限制的消息大小
maxMessageSize65536
#flushCommitLogLeastPages4
#flushConsumeQueueLeastPages2
#flushCommitLogThoroughInterval10000
#flushConsumeQueueThoroughInterval60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRoleSLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskTypeASYNC_FLUSH
#checkTransactionMessageEnablefalse
#发消息线程池数量
#sendMessageThreadPoolNums128
#拉消息线程池数量
#pullMessageThreadPoolNums128
#强制指定本机IP需要根据每台机器进行修改。官方介绍可为空系统默认自动识别但多网卡时IP地址可能读取错误
brokerIP1192.168.1.149broker-b.properties文件 #所属集群名字
brokerClusterNamerocketmq-cluster
#broker名字注意此处不同的配置文件填写的不一样
brokerNamebroker-b
#0 表示 Master0 表示 Slave
brokerId0
#nameServer地址分号分割
namesrvAddrrocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9876;rocketmq-nameserver4:9876
#在发送消息时自动创建服务器不存在的topic默认创建的队列数
defaultTopicQueueNums4
#是否允许 Broker 自动创建Topic建议线下开启线上关闭
autoCreateTopicEnabletrue
#是否允许 Broker 自动创建订阅组建议线下开启线上关闭
autoCreateSubscriptionGrouptrue
#Broker 对外服务的监听端口
listenPort10911
#删除文件时间点默认凌晨 4点
deleteWhen04
#文件保留时间默认 48 小时
fileReservedTime120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog1073741824
#ConsumeQueue每个文件默认存30W条根据业务情况调整
mapedFileSizeConsumeQueue300000
#destroyMapedFileIntervalForcibly120000
#redeleteHangedFileInterval120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio88
#存储路径
storePathRootDir/home/xm6f/dev/rocketmq/store
#commitLog 存储路径
storePathCommitLog/home/xm6f/dev/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue/home/xm6f/dev/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex/home/xm6f/dev/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint/home/xm6f/dev/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile/home/xm6f/dev/rocketmq/store/abort
#限制的消息大小
maxMessageSize65536
#flushCommitLogLeastPages4
#flushConsumeQueueLeastPages2
#flushCommitLogThoroughInterval10000
#flushConsumeQueueThoroughInterval60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRoleASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskTypeASYNC_FLUSH
#checkTransactionMessageEnablefalse
#发消息线程池数量
#sendMessageThreadPoolNums128
#拉消息线程池数量
#pullMessageThreadPoolNums128
#强制指定本机IP需要根据每台机器进行修改。官方介绍可为空系统默认自动识别但多网卡时IP地址可能读取错误
brokerIP1192.168.1.105 broker-b-s.properties文件 #所属集群名字
brokerClusterNamerocketmq-cluster
#broker名字注意此处不同的配置文件填写的不一样
brokerNamebroker-b
#0 表示 Master0 表示 Slave
brokerId1
#nameServer地址分号分割
namesrvAddrrocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9876;rocketmq-nameserver4:9876
#在发送消息时自动创建服务器不存在的topic默认创建的队列数
defaultTopicQueueNums4
#是否允许 Broker 自动创建Topic建议线下开启线上关闭
autoCreateTopicEnabletrue
#是否允许 Broker 自动创建订阅组建议线下开启线上关闭
autoCreateSubscriptionGrouptrue
#Broker 对外服务的监听端口
listenPort10911
#删除文件时间点默认凌晨 4点
deleteWhen04
#文件保留时间默认 48 小时
fileReservedTime120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog1073741824
#ConsumeQueue每个文件默认存30W条根据业务情况调整
mapedFileSizeConsumeQueue300000
#destroyMapedFileIntervalForcibly120000
#redeleteHangedFileInterval120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio88
#存储路径
storePathRootDir/home/xm6f/dev/rocketmq/store
#commitLog 存储路径
storePathCommitLog/home/xm6f/dev/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue/home/xm6f/dev/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex/home/xm6f/dev/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint/home/xm6f/dev/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile/home/xm6f/dev/rocketmq/store/abort
#限制的消息大小
maxMessageSize65536
#flushCommitLogLeastPages4
#flushConsumeQueueLeastPages2
#flushCommitLogThoroughInterval10000
#flushConsumeQueueThoroughInterval60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRoleSLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskTypeASYNC_FLUSH
#checkTransactionMessageEnablefalse
#发消息线程池数量
#sendMessageThreadPoolNums128
#拉消息线程池数量
#pullMessageThreadPoolNums128
#强制指定本机IP需要根据每台机器进行修改。官方介绍可为空系统默认自动识别但多网卡时IP地址可能读取错误
brokerIP1192.168.1.1607. 修改启动脚本参数【4台机器】 # vim /home/xm6f/dev/rocketmq/bin/runbroker.sh
JAVA_OPT${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
XX:PermSize128m -XX:MaxPermSize320m# vim /home/xm6f/dev/rocketmq/bin/runserver.sh
JAVA_OPT${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
XX:PermSize128m -XX:MaxPermSize320m 注意启动脚本设置不合理可能报如下异常Error occurred during initialization of VMToo small new size specified 8.防火墙默认启动用使用3个端口9876,10911,10912分别代表名称服务端口broker端口broker ha端口。ha端口haListenPort表示Master监听Slave请求的端口默认为服务端口1 添加到/etc/sysconfig/iptables的filter表INPUT链中 -A INPUT -m state --state NEW -m tcp -p tcp --dport 9876 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10911 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10912 -j ACCEPT 添加完成后重启防火墙service iptables restart 9.启动NameServer【4台机器】 # cd /home/xm6f/dev/rocketmq/bin
# sudo nohup sh mqnamesrv 10.启动BrokerServer 【4台机器】 注意配置文件需要根据实际配置/broker-X.properties # cd /home/xm6f/dev/rocketmq/bin
# 192.168.1.7
# sudo nohup sh mqbroker -c /home/xm6f/dev/rocketmq/conf/2m-2s-async/broker-a.properties /dev/null 21
# 192.168.1.105
# sudo nohup sh mqbroker -c /home/xm6f/dev/rocketmq/conf/2m-2s-async/broker-b.properties /dev/null 21
# 192.168.1.149
# sudo nohup sh mqbroker -c /home/xm6f/dev/rocketmq/conf/2m-2s-async/broker-a-s.properties /dev/null 21
# 192.168.1.160
# sudo nohup sh mqbroker -c /home/xm6f/dev/rocketmq/conf/2m-2s-async/broker-b-s.properties /dev/null 21 说明IP位7为主节点149是7的从节点。105是主节点160是105的从节点输入jps看到如上图所示表示成功 停止服务broker # sh mqshutdown broker 11.在tomcat中部署rocketmq-console.war修改rocketmq-console配置文件找到/tomcat-8082/webapps/rocketmq-console/WEB-INF/classes/config.properties文件添加如下 rocketmq.namesrv.addr192.168.1.7:9876;192.168.1.105:9876;192.168.1.149:9876;192.168.1.160:9876
throwDonetrue 启动tomcat在浏览器输入http://192.168.1.105:8082/rocketmq-console/ 多Master多Slave可以保证实时消费比如说我有一主一从如果主机宕机那么我从主机上获得的数据如果在没有从节点那么这些消息将在主节点重启之前将无法被消费直到主节点启动如果这个主节点里面有从节点从节点可以对外提供服务并且从节点有从主节点同步过来的数据那么还是可以将这些消息实时地消费掉。这点多Master方式无法做到。 当宕机的主节点起来之后会和从节点进行数据的同步不会重复消费刚刚消费过的数据。 12.数据清理 # cd /home/xm6f/devrocketmq/bin
# sh mqshutdown broker
# sh mqshutdown namesrv
# --等待停止
# rm -rf /home/xm6f/devrocketmq/store
# mkdir /home/xm6f/devrocketmq/store
# mkdir /home/xm6f/devrocketmq/store/commitlog
# mkdir /home/xm6f/devrocketmq/store/consumequeue
# mkdir /home/xm6f/devrocketmq/store/index
# --按照上面步骤重启NameServer与BrokerServer 启动时报错注释runserver.sh和runbroker.sh以下并添加JAVA_HOME地址 #[ ! -e $JAVA_HOME/bin/java ] JAVA_HOME/home/xm6f/dev/jdk1.7.0_80
#[ ! -e $JAVA_HOME/bin/java ] JAVA_HOME/home/xm6f/dev/jdk1.7.0_80
#[ ! -e $JAVA_HOME/bin/java ] error_exit Please set the JAVA_HOME variable in your environment, We need java(x64)!export JAVA_HOME/home/xm6f/dev/jdk1.7.0_80
export JAVA$JAVA_HOME/bin/java
..... 转载于:https://www.cnblogs.com/linjiqin/p/7511062.html