磁盘损坏情况下会丢失少量消息。
A、启动 NameServer
在 10.49.196.30、10.49.196.31、10.49.196.32 三台机器上分别启动 NameServer。
B、启动 Broker + Proxy 集群
在 10.49.196.30 上启动第一个 Master:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties --enable-proxy &
在 10.49.196.31 上启动第二个 Master:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties --enable-proxy &
在 10.49.196.32 上启动第一个 Slave:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties --enable-proxy &
在 10.49.196.33 上启动第二个 Slave:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties --enable-proxy &
2.3.4、多节点(集群)多副本模式-同步双写
每个 Master 配置一个 Slave,有多对 Master-Slave,HA 采用同步双写方式,即只有主备都写成功,才向应用返回成功,这种模式的优缺点如下:
优点:数据与服务都无单点故障,Master 宕机情况下,消息无延迟,服务可用性与数据可用性都非常高;
缺点:性能比异步复制模式略低(大约低10%左右),发送单个消息的 RT 会略高,且目前版本在主节点宕机后,备机不能自动切换为主机。
A、启动 NameServer
在 10.49.196.30、10.49.196.31、10.49.196.32 三台机器上分别启动 NameServer。
B、启动 Broker + Proxy 集群
在 10.49.196.30 上启动第一个 Master:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties --enable-proxy &
在 10.49.196.31 上启动第二个 Master:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties --enable-proxy &
在 10.49.196.32 上启动第一个 Slave:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties --enable-proxy &
在 10.49.196.33 上启动第二个 Slave:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties --enable-proxy &
注:以上 Broker 与 Slave 配对是通过指定相同的 BrokerName 参数来配对,Master 的 BrokerId 必须是 0,Slave 的 BrokerId 必须是大于 0 的数。另外一个 Master 下面可以挂载多个 Slave,同一 Master 下的多个 Slave 通过指定不同的 BrokerId 来区分。
2.4、Cluster 模式部署
在 Cluster 模式下,Broker 与 Proxy 分别部署(Broker 启动时不要添加 --enable-proxy 参数),可以在 NameServer和 Broker 都启动完成之后再部署 Proxy。
在 Cluster 模式下,一个 Proxy 集群和 Broker 集群为一一对应的关系,可以在 Proxy 的配置文件 rmq-proxy.json 中使用 rocketMQClusterName 进行配置。
这里以 Broker 的“多节点(集群)多副本模式-同步双写” 模式为例来部署 RocketMQ。
2.4.1、启动 NameServer
在 10.49.196.30、10.49.196.31、10.49.196.32 三台机器上分别启动 NameServer。
2.4.2、启动 Broker
在 10.49.196.30 上启动第一个 Master:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties &
在 10.49.196.31 上启动第二个 Master:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties &
在 10.49.196.32 上启动第一个 Slave:
nohup bin/mqbroker -n '10.49.196.30:9876;10.49.196.31:9876;10.49.196.32:9876' -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties &
在 10.49.196.33 上启动第二个