深圳h5网站公司,资讯网站的优势,做百度网站需要钱吗,怎样建淘宝客网站使用DockerCompose进行部署 docker-compose的版本为 Docker Compose version v2.2.3 RocketMQ的部署方式以及各自的特点 单master模式 只有一个 master 节点#xff0c;如果master节点挂掉了#xff0c;会导致整个服务不可用#xff0c;线上不宜使用#xff0c;适合个人学习…使用DockerCompose进行部署 docker-compose的版本为 Docker Compose version v2.2.3 RocketMQ的部署方式以及各自的特点 单master模式 只有一个 master 节点如果master节点挂掉了会导致整个服务不可用线上不宜使用适合个人学习使用。 多master模式 和kafka不一样RocketMQ中并没有 master 选举功能在RocketMQ集群中1台机器只能要么是Master要么是Slave这个在初始的机器配置里面就定死了的。 不会像kafka那样存在master动态选举所以通过配置多个master节点来保证RocketMQ的高可用。 多个 master 节点组成集群单个 master 节点宕机或者重启对应用没有影响。 **优点**高可用所有模式中性能最高 **缺点**可能会有少量消息丢失配置相关单台机器重启或宕机期间该机器下未被消费的消息在机器恢复前不可订阅影响消息实时性 **注意**使用同步刷盘可以保证消息不丢失同时 Topic 相对应的 queue 应该分布在集群中各个 master节点而不是只在某各 master 节点上否则该节点宕机会对订阅该 topic 的应用造成影响。 多master多slave异步复制模式 在多 master 模式的基础上每个 master 节点都有至少一个对应的 slave。 master 节点可读可写但是 slave 只能读不能写类似于 mysql 的主备模式。 优点 在 master 宕机时消费者可以从 slave 读取消息消息的实时性不会受影响性能几乎和多 master 一样。 **缺点**使用异步复制的同步方式有可能会有消息丢失的问题。 多master多slave 同步复制模式 同多 master 多 slave 异步复制模式类似区别在于 master 和 slave 之间的数据同步方式。 **优点**同步双写的同步模式能保证数据不丢失。 **缺点**发送单个消息 RT 会略长性能相比异步复制低10%左右。 **刷盘策略**同步刷盘和异步刷盘指的是节点自身数据是同步还是异步存储 注意要保证数据可靠需采用同步刷盘和同步双写的方式但性能会较其他方式低。
单Master模式进行部署
部署列表
组件端口数量nameserver98761master10911、109121rocketmq-console90011
配置文件
broker.conf
brokerClusterName rocketmq-cluster
brokerName broker-strand
brokerId 0
#当前 broker 监听的 IPbroker所在宿主机的IP
brokerIP1 172.16.15.220
#一天删除一次文件的操作代表凌晨四点进行删除
deleteWhen 04
#在磁盘上保存消息的时长 48小时
fileReservedTime 48
# 当前broker所处的角色
brokerRole ASYNC_MASTER
# 磁盘的刷新方式
flushDiskType ASYNC_FLUSH
# namesrvAddr的地址
namesrvAddr 172.16.15.220:9876
autoCreateTopicEnable true
#接受客户端连接的监听端⼝要跟后面docker-compose.yml中的ports配置匹配
listenPort 10911#haListenPort
#haListenPort是haService中使用
#默认值为listenPort 1DockerCompose部署文件
version: 3.5
services:nameserver-stand:image: apacherocketmq/rocketmq:4.6.0container_name: nameserver-standports: - 9876:9876environment:TZ: Asia/ShanghaiJAVA_OPTS: -Duser.home/optJAVA_OPT_EXT: -server -Xms128m -Xmx256m volumes:- ./nameserver/logs:/home/rocketmq/logs- ./nameserver/store:/home/rocketmq/storecommand: sh mqnamesrvnetworks:rmq:aliases:- nameserverbroker-stand:image: apacherocketmq/rocketmq:4.6.0container_name: broker-standuser:root:rootports:- 10911:10911- 10912:10912depends_on:- nameserveravolumes:- ./broker/logs:/root/logs- ./broker/store:/root/store- ./broker/conf/broker.conf:/opt/rocketmq-4.6.0/conf/broker.confenvironment:TZ: Asia/ShanghaiNAMESRV_ADDR: nameserver:9876JAVA_OPTS: -Duser.home/optJAVA_OPT_EXT: -server -Xms128m -Xmx256m command: sh mqbroker -c /opt/rocketmq-4.6.0/conf/broker.conf autoCreateTopicEnabletrue links:- nameserver:nameservernetworks:rmq:aliases:- rmqbrokerrmqconsole-stand:image: styletang/rocketmq-console-ngcontainer_name: rmqconsole-standports:- 9001:9001environment:TZ: Asia/ShanghaiJAVA_OPTS: -Duser.home/optJAVA_OPT_EXT: -server -Xms128m -Xmx256m environment:JAVA_OPTS: -Drocketmq.namesrv.addr172.16.15.220:9876 -Dcom.rocketmq.sendMessageWithVIPChannelfalse -Dserver.port9001 networks:rmq:aliases:- rmqconsole
networks:rmq:name: rmqdriver: bridge多Master多Slave的Async形式部署
部署列表
组件角色端口个数nameserver注册中心9876、98772master-a主节点a10911、109121slave-1-a主节点a的从节点10921、109221master-b主节点b10931、109321slave-1-b主节点b的从节点10941、109421
配置文件 搭建集群模式需要注意以下配置文件的配置项 brokerName将各个master进行区分名称一样的master和slave归属一类 brokerIdmaster与slave区分为0代表master0代表slave brokerRole代表master与slave之间的数据传输方式以及定位该broker是否为slave ASYNC_MASTER 异步复制SYNC_MASTER 同步复制从节点必须配置为SLAVE master-a.conf brokerClusterName rocketmq-cluster
brokerName broker-a
brokerId 0
#当前 broker 监听的 IPbroker所在宿主机的IP
brokerIP1 172.16.15.220
deleteWhen 04
fileReservedTime 48
# 控制master与slave的通信模式ASYNC_MASTER 异步复制SYNC_MASTER 同步复制SLAVE 表示从节点
brokerRole ASYNC_MASTER
flushDiskType ASYNC_FLUSH
#namesrvAddr的地址
namesrvAddr 172.16.15.220:9876;172.16.15.220:9877
autoCreateTopicEnable true
#接受客户端连接的监听端⼝要跟后面docker-compose.yml中的ports配置匹配
listenPort 10911#haListenPort
#haListenPort是haService中使用
#默认值为listenPort 1slave-1-a.conf brokerClusterName rocketmq-cluster
brokerName broker-a
brokerId 1
#当前 broker 监听的 IPbroker所在宿主机的IP
brokerIP1 172.16.15.220
deleteWhen 04
fileReservedTime 48
brokerRole SLAVE
flushDiskType ASYNC_FLUSH
#namesrvAddr的地址
namesrvAddr 172.16.15.220:9876;172.16.15.220:9877
autoCreateTopicEnable true
#接受客户端连接的监听端⼝要跟后面docker-compose.yml中的ports配置匹配
listenPort 10921#haListenPort
#haListenPort是haService中使用
#默认值为listenPort 1master-b.conf brokerClusterName rocketmq-cluster
brokerName broker-b
brokerId 0
#当前 broker 监听的 IPbroker所在宿主机的IP
brokerIP1 172.16.15.220
deleteWhen 04
fileReservedTime 48
# 控制master与slave的通信模式ASYNC_MASTER 异步复制SYNC_MASTER 同步复制SLAVE 表示从节点
brokerRole ASYNC_MASTER
flushDiskType ASYNC_FLUSH
#namesrvAddr的地址
namesrvAddr 172.16.15.220:9876;172.16.15.220:9877
autoCreateTopicEnable true
#接受客户端连接的监听端⼝要跟后面docker-compose.yml中的ports配置匹配
listenPort 10931#haListenPort
#haListenPort是haService中使用
#默认值为listenPort 1slave-1-b.conf brokerClusterName rocketmq-cluster
brokerName broker-b
brokerId 1
#当前 broker 监听的 IPbroker所在宿主机的IP
brokerIP1 172.16.15.220
deleteWhen 04
fileReservedTime 48
brokerRole SLAVE
flushDiskType ASYNC_FLUSH
#namesrvAddr的地址
namesrvAddr 172.16.15.220:9876;172.16.15.220:9877
autoCreateTopicEnable true
#接受客户端连接的监听端⼝要跟后面docker-compose.yml中的ports配置匹配
listenPort 10941#haListenPort
#haListenPort是haService中使用
#默认值为listenPort 1DockerCompose部署文件参考
version: 3.5
services:nameserver-a:image: apacherocketmq/rocketmq:4.6.0container_name: nameserver-aports: - 9876:9876environment:TZ: Asia/ShanghaiJAVA_OPTS: -Duser.home/optJAVA_OPT_EXT: -server -Xms128m -Xmx256m volumes:- ./nameserver-a/logs:/home/rocketmq/logs- ./nameserver-a/store:/home/rocketmq/storecommand: sh mqnamesrvnetworks:rmq-cluster:aliases:- nameserver-anameserver-b:image: apacherocketmq/rocketmq:4.6.0container_name: nameserver-bports: - 9877:9876volumes:- ./nameserver-b/logs:/home/rocketmq/logs- ./nameserver-b/store:/home/rocketmq/storecommand: sh mqnamesrvenvironment:TZ: Asia/ShanghaiJAVA_OPTS: -Duser.home/optJAVA_OPT_EXT: -server -Xms128m -Xmx256m networks:rmq-cluster:aliases:- nameserver-abroker-a:image: apacherocketmq/rocketmq:4.6.0container_name: broker-auser:root:rootports:- 10911:10911- 10912:10912volumes:- ./broker-a/logs:/root/logs- ./broker-a/store:/root/store- ./broker-a/conf/broker-a.conf:/opt/rocketmq-4.6.0/conf/broker.confenvironment:TZ: Asia/ShanghaiNAMESRV_ADDR: nameserver-a:9876;nameserver-b:9876JAVA_OPTS: -Duser.home/optJAVA_OPT_EXT: -server -Xms128m -Xmx256m command: sh mqbroker -c /opt/rocketmq-4.6.0/conf/broker.conf autoCreateTopicEnabletrue links:- nameserver-a:nameserver-a- nameserver-b:nameserver-bnetworks:rmq-cluster:aliases:- broker-aslave-1-a:image: apacherocketmq/rocketmq:4.6.0container_name: slave-1-auser:root:rootports:- 10921:10921- 10922:10922volumes:- ./slave-1-a/logs:/root/logs- ./slave-1-a/store:/root/store- ./slave-1-a/conf/slave-1-a.conf:/opt/rocketmq-4.6.0/conf/broker.confenvironment:TZ: Asia/ShanghaiNAMESRV_ADDR: nameserver-a:9876;nameserver-b:9876JAVA_OPTS: -Duser.home/optJAVA_OPT_EXT: -server -Xms128m -Xmx256m command: sh mqbroker -c /opt/rocketmq-4.6.0/conf/broker.conf autoCreateTopicEnabletrue links:- nameserver-a:nameserver-a- nameserver-b:nameserver-bnetworks:rmq-cluster:aliases:- slave-1-abroker-b:image: apacherocketmq/rocketmq:4.6.0container_name: broker-buser:root:rootports:- 10931:10931- 10932:10932volumes:- ./broker-b/logs:/root/logs- ./broker-b/store:/root/store- ./broker-b/conf/broker-b.conf:/opt/rocketmq-4.6.0/conf/broker.confenvironment:TZ: Asia/ShanghaiNAMESRV_ADDR: nameserver-a:9876;nameserver-b:9876JAVA_OPTS: -Duser.home/optJAVA_OPT_EXT: -server -Xms256m -Xmx512m -Xmn128mcommand: sh mqbroker -c /opt/rocketmq-4.6.0/conf/broker.conf autoCreateTopicEnabletrue links: - nameserver-a:nameserver-a- nameserver-b:nameserver-bnetworks:rmq-cluster:aliases:- broker-bslave-1-b:image: apacherocketmq/rocketmq:4.6.0container_name: slave-1-buser:root:rootports:- 10941:10941- 10942:10942volumes:- ./slave-1-b/logs:/root/logs- ./slave-1-b/store:/root/store- ./slave-1-b/conf/slave-1-b.conf:/opt/rocketmq-4.6.0/conf/broker.confenvironment:TZ: Asia/ShanghaiNAMESRV_ADDR: nameserver-a:9876;nameserver-b:9876JAVA_OPTS: -Duser.home/optJAVA_OPT_EXT: -server -Xms256m -Xmx512m -Xmn128mcommand: sh mqbroker -c /opt/rocketmq-4.6.0/conf/broker.conf autoCreateTopicEnabletrue links: - nameserver-a:nameserver-a- nameserver-b:nameserver-bnetworks:rmq-cluster:aliases:- slave-1-brmqconsole:image: styletang/rocketmq-console-ngcontainer_name: rmqconsoleports:- 9001:9001environment:TZ: Asia/ShanghaiJAVA_OPTS: -Duser.home/optJAVA_OPT_EXT: -server -Xms128m -Xmx256m environment:JAVA_OPTS: -Drocketmq.namesrv.addr172.16.15.220:9876;172.16.15.220:9877 -Dcom.rocketmq.sendMessageWithVIPChannelfalse -Dserver.port9001 networks:rmq-cluster:aliases:- rmqconsole
networks:rmq-cluster:name: rmq-clusterdriver: bridge部署问题 使用docker部署broker时启动失败报253错误码 解决方案
使用用户标签user将用户指向root映射容器存储路径改为/root/store