一、RocketMQ集群模式简介

单Master方式

风险比较大, 一旦Broker重启或者宕机, 将导致整个环境不可用, 不建议线上使用.

多Master模式

一个集群中没有slave, 全是master, 例如2个master或者3个master.
优点:配置简单, 性能最好,单个Master宕机或重启对应用无影响, 磁盘配置为RAID10时, 即使机器宕机不可恢复, 由于RAID10磁盘非常可靠, 消息也不会丢(异步刷盘丢失少量信息, 同步刷盘一条不丢)
缺点 : 单台机器宕机期间, 这个机器上未被消费消息在机器恢复之前不可订阅, 消息实时性受到影响 .

多Master多Slave模式, 异步复制

每个 Master 配置一个 Slave,有多对Master-Slave,采用异步复制方式,主备有短暂消息延迟,毫秒级。
优点:即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,因为Master 宕机后,消费者仍然可以从 Slave消费,此过程对应用透明。不需要人工干预。性能同Master 模式几乎一样。
缺点:Master 宕机,磁盘损坏情况,会丢失少量消息。

多Master多Slave模式, 同步双写

每个 Master 配置一个 Slave,有多对Master-Slave,采用同步双写方式,主备都写成功,向应用返回成功。
优点:数据与服务都无单点,Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高
缺点:性能比异步复制模式略低,大约低 %左右,发送单个消息的 RT会略高。目前主宕机后,备机不能自动切换为主机,后续会支持自动切换功能。

二、环境准备

1.集群角色及对应IP、主机环境

2.相关软件版本

3.部署前环境准备:

1.关闭防火墙,关闭selinux(生产环境按需关闭或打开)
2.同步服务器时间,选择公网ntpd服务器或者自建ntpd服务器

[root@es1 ~]# crontab -l #为了方便直接使用公网服务器
#update time
*/ * * * * /usr/bin/rdate -s time-b.nist.gov &>/dev/null
3.安装配置Java环境

可参考此文章Java环境安装部分https://www.cnblogs.com/panwenbin-logs/p/8138787.html
4.配置hosts(所有服务器)
172.16.150.131 rocketmq_master_01
172.16.150.132 rocketmq_master_02
172.16.150.133 rocketmq_master_03
172.16.150.134 rocketmq_slave_01
172.16.150.135 rocketmq_slave_02
172.16.150.136 rocketmq_slave_03

三、RocketMQ集群部署

1.解压RocketMQ到工作目录,并创建数据及日志目录(如果没有特别指定,以下操作均为在集群中所有机器上执行)

[root@rocketmq_master_01 ~]# tar xf alibaba-rocketmq-3.2..tar.gz -C /opt  #解压至/opt目录
[root@rocketmq_master_01 ~]# cd /opt && ln -sv alibaba-rocketmq-3.2. alibaba-rocketmq
[root@rocketmq_master_01 ~]# mkdir -p /var/alibaba-rocketmq/{commitlog,consumequeue,index,logs,namesrv} #数据及日志目录
[root@rocketmq_master_01 ~]# tree /var/alibaba-rocketmq/
[root@rocketmq_master_01 ~]# ll /opt/

2.目录解析(根据部署的架构进入对应的目录)

[root@rocketmq_master_01 ~]# cd /opt/alibaba-rocketmq/conf/
[root@rocketmq-master1 conf]# ll
总用量
drwxr-xr-x root root -- : 2m-2s-async #多主多从异步刷新参考配置文件
drwxr-xr-x root root -- : 2m-2s-sync   #多主多从同步刷新参考配置文件
drwxr-xr-x root root -- : 2m-noslave   #多master参考配置文件
....
[root@rocketmq_master_01 conf]# mkdir 3m-3s-sync #由于我们的架构为3主3从,所以新建一个目录
[root@rocketmq_master_01 conf]# cd 3m-3s-sync/

3.创建配置文件

创建、编辑集群broker配置文件

#所属集群名字
brokerClusterName=qgg_rocketmq-cluster #broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
brokerName=broker-a # 表示 Master,> 表示 Slave
brokerId= #nameServer地址,分号分割
namesrvAddr=rocketmq_master_01:;rocketmq_master_02:;rocketmq_master_03: #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums= #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true #Broker 对外服务的监听端口
listenPort= #删除文件时间点,默认凌晨 4点
deleteWhen= #文件保留时间,默认 小时
fileReservedTime= #commitLog每个文件的大小默认1G
mapedFileSizeCommitLog= #ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue= #检测物理文件磁盘空间
diskMaxUsedSpaceRatio= #存储路径
storePathRootDir=/var/alibaba-rocketmq/
#commitLog 存储路径
storePathCommitLog=/var/alibaba-rocketmq/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
#消息索引存储路径
storePathIndex=/var/alibaba-rocketmq/index
#checkpoint 文件存储路径
storeCheckpoint=/var/alibaba-rocketmq/checkpoint
#abort 文件存储路径
abortFile=/var/alibaba-rocketmq/abort
#限制的消息大小
#maxMessageSize= #刷CommitLog,至少刷几个PAGE
#flushCommitLogLeastPages= #刷ConsumeQueue,至少刷几个PAGE
#flushConsumeQueueLeastPages= #刷CommitLog,彻底刷盘间隔时间
#flushCommitLogThoroughInterval= #刷ConsumeQueue,彻底刷盘间隔时间
#flushConsumeQueueThoroughInterval= #Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER #刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH #检查事务消息,开源版本4.3之前没有事务功能
checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums= #拉消息线程池数量
#pullMessageThreadPoolNums= #绑定IP地址,如果有多个网卡接口需要配置,否则报错
brokerIP1=172.16.150.131 #Netty服务工作线程数量
serverWorkerThreads = #Netty服务异步回调线程池线程数量
serverCallbackExecutorThreads = #Netty Selector线程数量
serverSelectorThreads = #控制单向的信号量 一次请求没有响应
serverOnewaySemaphoreValue = #控制异步信号量
serverAsyncSemaphoreValue = #服务空闲心跳检测时间间隔 单位秒
serverChannelMaxIdleTimeSeconds = #Netty发送缓冲区大小
serverSocketSndBufSize = #Netty接受缓冲区大小
serverSocketRcvBufSize = #是否使用Netty内存池
serverPooledByteBufAllocatorEnable = true

broker-a.properties

#所属集群名字
brokerClusterName=qgg_rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
brokerName=broker-b
# 表示 Master,> 表示 Slave
brokerId=
#nameServer地址,分号分割
namesrvAddr=rocketmq_master_01:;rocketmq_master_02:;rocketmq_master_03:
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=
#删除文件时间点,默认凌晨 4点
deleteWhen=
#文件保留时间,默认 小时
fileReservedTime=
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=
#destroyMapedFileIntervalForcibly=
#redeleteHangedFileInterval=
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=
#存储路径
storePathRootDir=/var/alibaba-rocketmq/
#commitLog 存储路径
storePathCommitLog=/var/alibaba-rocketmq/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
#消息索引存储路径
storePathIndex=/var/alibaba-rocketmq/index
#checkpoint 文件存储路径
storeCheckpoint=/var/alibaba-rocketmq/checkpoint
#abort 文件存储路径
abortFile=/var/alibaba-rocketmq/abort
#限制的消息大小
#maxMessageSize=
#flushCommitLogLeastPages=
#flushConsumeQueueLeastPages=
#flushCommitLogThoroughInterval=
#flushConsumeQueueThoroughInterval=
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=
#拉消息线程池数量
#pullMessageThreadPoolNums=
#绑定IP地址,如果有多个网卡接口需要配置,否则报错
brokerIP1=172.16.150.132 #Netty服务工作线程数量
serverWorkerThreads = #Netty服务异步回调线程池线程数量
serverCallbackExecutorThreads = #Netty Selector线程数量
serverSelectorThreads = #控制单向的信号量 一次请求没有响应
serverOnewaySemaphoreValue = #控制异步信号量
serverAsyncSemaphoreValue = #服务空闲心跳检测时间间隔 单位秒
serverChannelMaxIdleTimeSeconds = #Netty发送缓冲区大小
serverSocketSndBufSize = #Netty接受缓冲区大小
serverSocketRcvBufSize = #是否使用Netty内存池
serverPooledByteBufAllocatorEnable = true

broker-b.properties

#所属集群名字
brokerClusterName=qgg_rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
brokerName=broker-c
# 表示 Master,> 表示 Slave
brokerId=
#nameServer地址,分号分割
namesrvAddr=rocketmq_master_01:;rocketmq_master_02:;rocketmq_master_03:
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=
#删除文件时间点,默认凌晨 4点
deleteWhen=
#文件保留时间,默认 小时
fileReservedTime=
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=
#destroyMapedFileIntervalForcibly=
#redeleteHangedFileInterval=
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=
#存储路径
storePathRootDir=/var/alibaba-rocketmq/
#commitLog 存储路径
storePathCommitLog=/var/alibaba-rocketmq/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
#消息索引存储路径
storePathIndex=/var/alibaba-rocketmq/index
#checkpoint 文件存储路径
storeCheckpoint=/var/alibaba-rocketmq/checkpoint
#abort 文件存储路径
abortFile=/var/alibaba-rocketmq/abort
#限制的消息大小
#maxMessageSize=
#flushCommitLogLeastPages=
#flushConsumeQueueLeastPages=
#flushCommitLogThoroughInterval=
#flushConsumeQueueThoroughInterval=
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=
#拉消息线程池数量
#pullMessageThreadPoolNums=
brokerIP1=172.16.150.133

broker-c.properties

#所属集群名字
brokerClusterName=qgg_rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
brokerName=broker-a
# 表示 Master,> 表示 Slave
brokerId=
#nameServer地址,分号分割
namesrvAddr=rocketmq_master_01:;rocketmq_master_02:;rocketmq_master_03:
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=
#删除文件时间点,默认凌晨 4点
deleteWhen=
#文件保留时间,默认 小时
fileReservedTime=
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=
#destroyMapedFileIntervalForcibly=
#redeleteHangedFileInterval=
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=
#存储路径
storePathRootDir=/var/alibaba-rocketmq/
#commitLog 存储路径
storePathCommitLog=/var/alibaba-rocketmq/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
#消息索引存储路径
storePathIndex=/var/alibaba-rocketmq/index
#checkpoint 文件存储路径
storeCheckpoint=/var/alibaba-rocketmq/checkpoint
#abort 文件存储路径
abortFile=/var/alibaba-rocketmq/abort
#限制的消息大小
#maxMessageSize=
#flushCommitLogLeastPages=
#flushConsumeQueueLeastPages=
#flushCommitLogThoroughInterval=
#flushConsumeQueueThoroughInterval=
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=
#拉消息线程池数量
#pullMessageThreadPoolNums=
brokerIP1=172.16.150.134

broker-a-s.properties

#所属集群名字
brokerClusterName=qgg_rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
brokerName=broker-b
# 表示 Master,> 表示 Slave
brokerId=
#nameServer地址,分号分割
namesrvAddr=rocketmq_master_01:;rocketmq_master_02:;rocketmq_master_03:
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=
#删除文件时间点,默认凌晨 4点
deleteWhen=
#文件保留时间,默认 小时
fileReservedTime=
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=
#destroyMapedFileIntervalForcibly=
#redeleteHangedFileInterval=
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=
#存储路径
storePathRootDir=/var/alibaba-rocketmq/
#commitLog 存储路径
storePathCommitLog=/var/alibaba-rocketmq/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
#消息索引存储路径
storePathIndex=/var/alibaba-rocketmq/index
#checkpoint 文件存储路径
storeCheckpoint=/var/alibaba-rocketmq/checkpoint
#abort 文件存储路径
abortFile=/var/alibaba-rocketmq/abort
#限制的消息大小
#maxMessageSize=
#flushCommitLogLeastPages=
#flushConsumeQueueLeastPages=
#flushCommitLogThoroughInterval=
#flushConsumeQueueThoroughInterval=
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=
#拉消息线程池数量
#pullMessageThreadPoolNums=
brokerIP1=172.16.150.135

broker-b-s.properties

#所属集群名字
brokerClusterName=qgg_rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
brokerName=broker-c
# 表示 Master,> 表示 Slave
brokerId=
#nameServer地址,分号分割
namesrvAddr=rocketmq_master_01:;rocketmq_master_02:;rocketmq_master_03:
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=
#删除文件时间点,默认凌晨 4点
deleteWhen=
#文件保留时间,默认 小时
fileReservedTime=
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=
#destroyMapedFileIntervalForcibly=
#redeleteHangedFileInterval=
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=
#存储路径
storePathRootDir=/var/alibaba-rocketmq/
#commitLog 存储路径
storePathCommitLog=/var/alibaba-rocketmq/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
#消息索引存储路径
storePathIndex=/var/alibaba-rocketmq/index
#checkpoint 文件存储路径
storeCheckpoint=/var/alibaba-rocketmq/checkpoint
#abort 文件存储路径
abortFile=/var/alibaba-rocketmq/abort
#限制的消息大小
#maxMessageSize=
#flushCommitLogLeastPages=
#flushConsumeQueueLeastPages=
#flushCommitLogThoroughInterval=
#flushConsumeQueueThoroughInterval=
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=
#拉消息线程池数量
#pullMessageThreadPoolNums=
brokerIP1=172.16.150.136

broker-c-s.properties

以上配置文件需要设置不同值的选项为:

brokerId      #0 表示 Master,>0 表示 Slave
brokerRole #Broker 的角色
#
- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#-
SLAVE
brokerIP1 #本机提供服务的IP地址 补充一个配置:
slaveReadEnable=true #建议开启,默认关闭

创建、编辑集群nameserver配置文件

[root@rocketmq_master_01 conf]# cat namesrv.properties
listenPort =
serverWorkerThreads =
serverCallbackExecutorThreads =
serverSelectorThreads =
serverOnewaySemaphoreValue =
serverAsyncSemaphoreValue =
serverChannelMaxIdleTimeSeconds =
serverSocketSndBufSize =
serverSocketRcvBufSize =
serverPooledByteBufAllocatorEnable = true
kvConfigPath=/var/alibaba-rocketmq/namesrv/

4.修改log及数据路径

[root@rocketmq_master_01 3m-3s-sync]# cd /opt/alibaba-rocketmq/conf/
[root@rocketmq_master_01 conf]# sed -i 's#${user.home}#/var/alibaba-rocketmq#g' *.xml #默认路径为用户家目录下

5.修改服务启动脚本参数 

[root@rocketmq_master_01 conf]# cd ../bin/
[root@rocketmq_master_01 bin]# pwd
/opt/alibaba-rocketmq/bin
[root@rocketmq_master_01]# vim runbroker.sh #broker的启动脚本

[root@rocketmq_master_01 bin]# vim runserver.sh  #nameserver启动脚本

6.先依次启动nameserver服务(必须)

[root@rocketmq_master_01 bin]# cd /opt/alibaba-rocketmq/bin
[root@rocketmq_master_01 bin]# nohup sh mqnamesrv & #启动服务
[root@rocketmq_master_01 bin]# tailf /var/alibaba-rocketmq/logs/rocketmqlogs/namesrv.log #查看打印日志是否异常

7.启动broker服务

[root@rocketmq_master_01 bin]#nohup sh mqbroker -c /opt/alibaba-rocketmq/conf/3m-3s-sync/broker-a.properties &  #注意,每台服务启动时指定的配置文件也要同时改变
[root@rocketmq_master_01 bin]# tailf /var/alibaba-rocketmq/logs/rocketmqlogs/broker.log

四、部署rockmq-console

由于当前rocketmq版本较低,使用最新的rocketmq-console会有部分信息丢失的情况,只能使用较低版本的,这里使用的版本为rocketmq-console-3.2.6,依赖Tomcat容器,具体操作步骤为,:

1.unzip解压war包 -d指定到某个目录,
2.进入解压目录下WEB-INF/classes/目录中
.修改config.properties配置文件,添加name server地址,格式IP(域名):port 如果有多个,已;为分割
4.将目录移动到Tomcat docBase目录下,并启动

资源链接地址:

链接:https://pan.baidu.com/s/10NeEeBH8eugdYcDn6e02aQ  提取码:aq1t 

界面展示:

通过console可以看到,当前共有三个broker,每个broker有两台服务器

注意事项:

.配置文件名称和服务器对应,a:master1 b:master2 ..
.注意不同主机配置文件名称不同,brokerNam也不同
.每台briker服务启动时,注意要指定正确的配置文件
4.建议生产每个服务使用screen命令启动,不要使用nohup

参考文档:

https://github.com/apache/rocketmq-externals/tree/release-rocketmq-console-1.0.0/rocketmq-console

https://github.com/apache/rocketmq-externals/blob/master/rocketmq-console/doc/1_0_0/UserGuide_CN.md

http://rocketmq.apache.org/docs/quick-start/

https://juejin.im/post/5a911ea16fb9a0633f0e36a1

https://blog.csdn.net/sybnfkn040601/article/details/64920062

RocketMQ多master多salve集群搭建的更多相关文章

  1. RocketMQ 2主2从 集群搭建

    安装环境 jdk1.7 alibaba-rocketmq-3.2.6.tar.gz VM虚拟机redhat6.5-x64:192.168.1.201  192.168.1.202 192.168.1. ...

  2. rocketmq 两主两从异步集群搭建

    1.安装JDK 需要先卸载系统默认的OPENJDK,安装 JDK1.8 64位的版本. 卸载open-jdk rpm -qa|grep java 查到open jdk的安装. 使用命令 rpm -e ...

  3. RocketMQ集群搭建(3m-3s-async)

    RocketMQ集群搭建(3m-3s-async) 各角色介绍 角色 作用 Producer 消息发送者,将消息发送到 Broker.无状态,其与NameServer集群中的一个节点建立长连接,定期从 ...

  4. RocketMQ集群搭建

    1.RocketMQ介绍 1.1. 简介 RocketMQ 是一款分布式.队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅 ...

  5. RocketMQ集群搭建方式

    各角色介绍 Producer:消息的发送者:举例:发信者 Consumer:消息接收者:举例:收信者 Broker:暂存和传输消息:举例:邮局 NameServer:管理Broker:举例:各个邮局的 ...

  6. Kafka【第一篇】Kafka集群搭建

    Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...

  7. 主从集群搭建及容灾部署redis

    redis主从集群搭建及容灾部署(哨兵sentinel) Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 l  Redis安装 l  整体架构 l  Redis主 ...

  8. Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程

    1.选取三台服务器(CentOS系统64位) 114.55.246.88 主节点 114.55.246.77 从节点 114.55.246.93 从节点 之后的操作如果是用普通用户操作的话也必须知道r ...

  9. Linux Redis集群搭建与集群客户端实现(Python)

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

随机推荐

  1. java高并发系列 - 第5天:深入理解进程和线程

    进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.程序是指令.数据及其组织形式的描述,进程是程序的实体. 进程具有的 ...

  2. Spring Boot 2.X整合Spring-cache,让你的网站速度飞起来

    计算机领域有人说过一句名言:“计算机科学领域的任何问题都可以通过增加一个中间层来解决”,今天我们就用Spring-cache给网站添加一层缓存,让你的网站速度飞起来. 本文目录 一.Spring Ca ...

  3. wpf source path

    <Image Source="pack://application:,,,/Images/Folder-icon.png"/> <Image Source=&qu ...

  4. pycharm 取消连按两下shift出现的全局搜索

    在来回切换中英文输入法的时候连按两下shift总是会蹦出来全局搜索框 真的很是麻烦,现在是把这个框给禁用掉 1.按ctrl+shift+a,弹出搜索框2.输入registry,然后按回车3.找到“id ...

  5. Winform中在ZedGraph中最多可以添加多少条曲线

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  6. maven下载,安装,配置

    Eclipse配置maven  官网:http://maven.apache.org/ 1.解压你在maven下载到的压缩包,一般把它和jdk放在一起. 2.安装maven在电脑上. 鼠标右键点击计算 ...

  7. 自定义栈Stack 和 队列Queue

    自定义栈 接口 package com.test.custom; public interface IStack<E> { E pop(); void push(E e); E peek( ...

  8. 函数截流---js

    <div id="show">0</div> <button id="btn">click</button> & ...

  9. Linux中LVM逻辑卷管理

    一.简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区 进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的 ...

  10. TCP/IP协议的分层

    T C P / I P协议族是一组不同的协议组合在一起构成的协议族.尽管通常称该协议族为 T C P / I P,但T C P和I P只是其中的两种协议而已(该协议族的另一个名字是 I n t e r ...