专栏首页Java开发者Apache RocketMQ 集群搭建(两主两从)

Apache RocketMQ 集群搭建(两主两从)

Apache RocketMQ 集群搭建(两主两从)

Apache RocketMQ 系列:

Apache RocketMQ之JMS基本概念及使用:https://www.jianshu.com/p/d2e3fd77c4f4 Apache RocketMQ 基础概念及架构解析:https://www.jianshu.com/p/95ab928960b3 Apache RocketMQ 的基础特性介绍:https://www.jianshu.com/p/570680b32590 Apache RocketMQ 集群搭建(两主两从):https://www.jianshu.com/p/b090138cf52c Apache RocketMQ 刷盘策略与复制策略: https://www.jianshu.com/p/d66b381428bb

优秀博客: https://www.jianshu.com/p/b30142c17ad0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation


RocketMQ 架构图

1.png

消息中间件和RPC最大区别:Broker Cluster存储

NameServer: 提供轻量级的服务发现和路由。 每个 NameServer 记录完整的路由信息,提供等效的读写服务,并支持快速存储扩展。

Broker: 通过提供轻量级的 Topic 和 Queue 机制来处理消息存储,同时支持推(push)和拉(pull)模式以及主从结构的容错机制。

Producer:生产者,产生消息的实例,拥有相同 Producer Group 的 Producer 组成一个集群。

Consumer:消费者,接收消息进行消费的实例,拥有相同 Consumer Group 的 Consumer 组成一个集群。

从 Broker 开始,Broker Master1 和 Broker Slave1 是主从结构,它们之间会进行数据同步,即 Date Sync。同时每个 Broker 与 NameServer 集群中的所有节 点建立长连接,定时注册 Topic 信息到所有 NameServer 中。

Producer 与 NameServer 集群中的其中一个节点(随机选择)建立长连接,定期从 NameServer 获取 Topic 路由信息,并向提供 Topic 服务的 Broker Master 建立长连接,且定时向 Broker 发送心跳。

Producer 只能将消息发送到 Broker master,但是 Consumer 则不一样,它同时和提供 Topic 服务的 Master 和 Slave 建立长连接,既可以从 Broker Master 订阅消息,也可以从 Broker Slave 订阅消息。


RocketMQ 集群部署模式

单 master 模式:

优点:除了配置简单没什么优点,适合个人学习使用。

缺点:不可靠,该机器重启或宕机,将导致整个服务不可用。

多 master 模式:

多个 master 节点组成集群,单个 master 节点宕机或者重启对应用没有影响。

优点:所有模式中性能最高

缺点:单个 master 节点宕机期间,未被消费的消息在节点恢复之前不可用,消息的实时性就受到影响。

注意:使用同步刷盘可以保证消息不丢失,同时 Topic 相对应的 queue 应该分布在集群中各个节点,而不是只在某各节点上,否则,该节点宕机会对订阅该 topic 的应用造成影响。

多 master 多 slave 异步复制模式:

在多 master 模式的基础上,每个 master 节点都有至少一个对应的 slave。master 节点可读可写,但是 slave 只能读不能写,类似于 mysql 的主备模式。

优点: 在 master 宕机时,消费者可以从 slave读取消息,消息的实时性不会受影响,性能几乎和多 master 一样。

缺点:使用异步复制的同步方式有可能会有消息丢失的问题。

多 master 多 slave 同步双写模式:

同多 master 多 slave 异步复制模式类似,区别在于 master 和 slave 之间的数据同步方式。

优点:同步双写的同步模式能保证数据不丢失。

缺点:发送单个消息 RT 会略长,性能相比异步复制低10%左右。

刷盘策略:同步刷盘和异步刷盘(指的是节点自身数据是同步还是异步存储)

同步方式:同步双写和异步复制(指的一组 master 和 slave 之间数据的同步)

注意:要保证数据可靠,需采用同步刷盘和同步双写的方式,但性能会较其他方式低。


开始集群搭建:2M-2S-SYNC(两主两从同步写)

软件依赖:

软件及版本

下载地址

rocketmq-4.2

https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip

jdk1.8

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

环境介绍:

IP

部署服务

角色

192.168.5.100

NameServer

--

192.168.5.101

NameServer

--

192.168.5.100

broker-a

master

192.168.5.100

broker-b-s

slave

192.168.5.101

broker-b

master

192.168.5.101

broker-a-s

slave

环境变量配置:
#设置jdk环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_191  #jdk安装目录

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH

export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin

export PATH=$PATH:${JAVA_PATH}

#设置 rocketmq 环境变量
export ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq-4.2

export PATH=$PATH::$ROCKETMQ_HOME/bin
防火墙设置:

如果是开发环境 # service iptables stop 直接关闭防火墙 若是生产环境就需要配置防火墙,增加端口规则,默认nameserver端口是9876,笔者直接就关闭防火墙服务。

注:另一台机器也是如此操作!
解压完成后创建目录:
mkdir /usr/local/rocketmq/rocketmq-4.2/data/store 存储路径

mkdir /usr/local/rocketmq/rocketmq-4.2/data/store/commitlog  commitLog 存储路径

mkdir /usr/local/rocketmq/rocketmq-4.2/data/store/consumequeue 消费队列存储路径存储路径

mkdir /usr/local/rocketmq/rocketmq-4.2/data/store/index 消息索引存储路径

[root@node-100 store]# pwd
/usr/local/rocketmq/rocketmq-4.2/data/store
[root@node-100 store]# ls
checkpoint  commitlog  config  consumequeue  index  lock  slave
[root@node-100 store]# 
修改配置文件:
[root@node-100 2m-2s-sync]# pwd
/usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync
[root@node-100 2m-2s-sync]# ls
broker-a.properties  broker-a-s.properties  broker-b.properties  broker-b-s.properties  nohup.out
[root@node-100 2m-2s-sync]# vim broker-a.properties
192.168.5.100机器配置如下:
broker-a.properties:
#所属集群名称,如果多个master,那么每个master配置的名称应该一致,要不然识别不了
brokerClusterName=rocketmq-cluster
#broker名称
brokerName=broker-a
#0 表示master,>0 表示slave
brokerId=0
#nameServer地址,分号隔开
namesrvAddr=192.168.5.100:9876;192.168.5.101:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许broker自动创建topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许broker自动创建订阅组,建议线下开始,线上关闭
autoCreateSubscriptionGroup=true
#broker对外服务的监听端口,
#同一台机器部署多个broker,端口号要不同,且端口号之间要相距大些
listenPort=10911
#删除文件的时间节点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认48小时
fileReservedTime=120
#commitLog每个文件的大小,默认大小1g
mapedFileSizeCommitLog=1073741824
#consumeQueue每个文件默认存30w条,根据自身业务进行调整
mapedFileSizeConsumeQueue=300000
destroyMapedFileInterval=120000
redeleteHangedFileInterval=120000
#检查物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#store存储路径,master与slave目录要不同
storePathRootDir=/usr/local/rocketmq/rocketmq-4.2/data/store
#commitLog存储路径
storePathCommitLog=/usr/local/rocketmq/rocketmq-4.2/data/store/commitlog
#限制的消息大小
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
#发消息线程池数
sendMessageThreadPoolNums=128
#拉去消息线程池数
pullMessageThreadPoolNums=128
#broker角色:
#ASYSC_MASTER 异步复制master
#SYSC_MASTER 同步复制master
#SLAVE 从
brokerRole=SYSC_MASTER
#刷盘方式
#ASYNC_FLUSH 异步刷盘
#SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
broker-b-s.properties:
brokerClusterName=rocketmq-cluster
brokerName=broker-b
#0 -> master ,>0 -> slave
brokerId=1
namesrvAddr=192.168.5.100:9876;192.168.5.101:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10950
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileInterval=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
storePathRootDir=/usr/local/rocketmq/rocketmq-4.2/data/store/slave
storePathCommitLog=/usr/local/rocketmq/rocketmq-4.2/data/store/slave/commitlog
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
192.168.5.101机器配置如下:
broker-a-s.properties:
brokerClusterName=rocketmq-cluster
brokerName=broker-a
brokerId=1
namesrvAddr=192.168.5.100:9876;192.168.5.101:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10950
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileInterval=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
storePathRootDir=/usr/local/rocketmq/rocketmq-4.2/data/store/slave
storePathCommitLog=/usr/local/rocketmq/rocketmq-4.2/data/store/slave/commitlog
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
broker-b.properties:
brokerClusterName=rocketmq-cluster
brokerName=broker-b
brokerId=0
namesrvAddr=192.168.5.100:9876;192.168.5.101:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileInterval=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
storePathRootDir=/usr/local/rocketmq/rocketmq-4.2/data/store
storePathCommitLog=/usr/local/rocketmq/rocketmq-4.2/data/store/commitlog
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
brokerRole=SYSC_MASTER
flushDiskType=ASYNC_FLUSH
修改日志配置文件:
#创建日志目录
mkdir -p /usr/local/rocketmq/rocketmq-4.2/logs

#替换*.xml文件中的{user.home}为自己指定的目录
cd /usr/local/rocketmq/rocketmq-4.2/conf && sed -i 's#${user.home}#/root/svr/rocketmq#g'
*.xml
改参数:

runbroker.sh,runserver.sh启动参数默认对jvm的堆内存设置比较大(不改启动不起来),如果是虚拟机非线上环境需要改下参数,大小可以根据自己机器来决定。

[root@node-100 bin]# pwd
/usr/local/rocketmq/rocketmq-4.2/bin
[root@node-100 bin]# ls
cachedog.sh       mqadmin.cmd   mqbroker.numanode0  mqbroker.xml     mqnamesrv      mqshutdown.cmd  play.sh        runbroker.sh   startfsrv.sh
cleancache.sh     mqadmin.xml   mqbroker.numanode1  mqfiltersrv      mqnamesrv.cmd  nohup.out       README.md      runserver.cmd  tools.cmd
cleancache.v1.sh  mqbroker      mqbroker.numanode2  mqfiltersrv.cmd  mqnamesrv.xml  os.sh           runbroker      runserver.sh   tools.sh
mqadmin           mqbroker.cmd  mqbroker.numanode3  mqfiltersrv.xml  mqshutdown     play.cmd        runbroker.cmd  setcache.sh
[root@node-100 bin]# 
runbroker.sh:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/mq_gc_%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy"
JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
runserver.sh:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8  -XX:-UseParNewGC"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT}  -XX:-UseLargePages"
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
注意:两次机器都要设置!

如果还是出现内存问题,可尝试修改下面几个文件:

[root@node-100 bin]# pwd
/usr/local/rocketmq/rocketmq-4.2/bin
[root@node-100 bin]# ls *.xml
mqadmin.xml  mqbroker.xml  mqfiltersrv.xml  mqnamesrv.xml
[root@node-100 bin]# 

将这几个文件中下面参数给删掉:

-XX:PermSize    设置持久代(perm gen)初始值  物理内存的1/64    
-XX:MaxPermSize 设置持久代最大值    物理内存的1/4

开始启动:
先启动namesrv(两台都要启动):
[root@node-100 bin]# cd /usr/local/rocketmq/rocketmq-4.2/bin
[root@node-100 bin]# nohup sh mqnamesrv &
[1] 2601
[root@node-100 bin]# nohup: 忽略输入并把输出追加到"nohup.out"

[root@node-100 bin]# jps
2604 NamesrvStartup
2621 Jps
[root@node-100 bin]# 

因为rocketmq是java开发的,所以通过jps命令查看namesrv有没有启动,当然通过日志文件也可以,namesrv正常启动之后,后续再分别启动Broker。

启动BrokerServer(两台都要启动):
192.168.5.100:
broker-a.properties:
[root@node-100 bin]# nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-a.properties &
[2] 2646
[root@node-100 bin]# nohup: 忽略输入并把输出追加到"nohup.out"

[root@node-100 bin]# jps
2681 Jps
2650 BrokerStartup
2604 NamesrvStartup
[root@node-100 bin]# 
broker-b-s.properties:
[root@node-100 bin]# nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-b-s.properties &
[3] 2729
[root@node-100 bin]# nohup: 忽略输入并把输出追加到"nohup.out"

[root@node-100 bin]# 
[root@node-100 bin]# jps
2789 Jps
2650 BrokerStartup
2604 NamesrvStartup
2733 BrokerStartup
[root@node-100 bin]# 
192.168.5.101:
broker-b.properties:
[root@node-101 bin]# nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-b.properties &
[2] 7621
[root@node-101 bin]# nohup: 忽略输入并把输出追加到"nohup.out"

[root@node-101 bin]# 
[root@node-101 bin]# jps
7570 NamesrvStartup
7667 Jps
7625 BrokerStartup
[root@node-101 bin]# 
broker-a-s.properties:
[root@node-101 bin]# nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-a-s.properties &
[3] 7701
[root@node-101 bin]# nohup: 忽略输入并把输出追加到"nohup.out"

[root@node-101 bin]# jps
7570 NamesrvStartup
7625 BrokerStartup
7705 BrokerStartup
7774 Jps
[root@node-101 bin]# 
启动完成,查看集群信息:
[root@node-100 bin]# sh mqadmin clusterlist -n 192.168.5.100:9876
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
rocketmq-cluster  broker-a                0     192.168.5.100:10911    V4_2_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 429538.48 0.2738
rocketmq-cluster  broker-a                1     192.168.5.101:10950    V4_2_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 429538.48 0.2734
rocketmq-cluster  broker-b                0     192.168.5.101:10911    V4_2_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 429538.48 0.2734
rocketmq-cluster  broker-b                1     192.168.5.100:10950    V4_2_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 429538.48 0.2738
[root@node-100 bin]# 
启动成功!

测试:

可以启动RocketMQ的监控查看:

监控源码下载地址: https://github.com/apache/rocketmq-externals.git

配置namesrv rocketmq.config.namesrvAddr=192.168.5.100:9876

或者:

export NAMESRV_ADDR=192.168.5.100:9876;192.168.5.101:9876
#测试发送端
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
#测试消费端
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

停止命令:

[root@node-101 bin]# sh mqshutdown broker
The mqbroker(7625
7705) is running...
Send shutdown request to mqbroker(7625
7705) OK
[root@node-101 bin]# sh mqshutdown namesrv
The mqnamesrv(7570) is running...
Send shutdown request to mqnamesrv(7570) OK
[3]+  退出 143              nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-a-s.properties
[2]+  退出 143              nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-b.properties
[root@node-101 bin]# 

本次RocketMQ 集群搭建顺利完成:)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RocketMQ主从集群模式搭建

    我这里事先在两台机器上安装好了RocketMQ,关于RocketMQ的安装可以参考如下文章:

    端碗吹水
  • Apache Pulsar, RabbitMQ, RocketMQ机器消耗对比

    绿色的 X 是 Exchange,红色是 Queue ,这两者都在 Server 端(称作 Broker),这部分由 RabbitMQ 实现

    用户2781897
  • RocketMQ入门手册

    继我上一篇博客后 分布式消息队列RocketMQ学习教程① 上一篇博客最主要介绍了几种常用的MQ,所以本博客再简单介绍一下RocketMQ的原理和简单的...

    SmileNicky
  • 分布式消息中间件 RocketMQ:概述与源码编译篇

    Apache RocketMQ 是一个分布式消息中间件,其具有低延迟、高性能和可靠性、万亿级容量、灵活的可扩展性特性;它是阿里巴巴在2012年开源的分布式消息中...

    加多
  • 芋道 RocketMQ 安装部署

    RocketMQ 是阿里巴巴在 2012 年开源的分布式消息中间件,目前已经捐赠给 Apache 软件基金会,并于 2017 年 9 月 25 日成为 Apac...

    芋道源码
  • Apache RocketMQ 基础概念及架构解析

    Apache RocketMQ之JMS基本概念及使用:https://www.jianshu.com/p/d2e3fd77c4f4 Apache Rocket...

    zoro
  • java架构之路-(MQ专题)RocketMQ从入坑到集群详解

      这次我们来说说我们的RocketMQ的安装和参数配置,先来看一下我们RocketMQ的提出和应用场景吧。

    小菜的不能再菜
  • RocketMQ双主双从模式集群部署

    在生产环境中为了保障集群无单点故障问题,保证高可用性,需要采用双主双从模式来构建RocketMQ集群。双主双从模式部署需要四台机器,两台机器分别部署Broker...

    端碗吹水
  • Apache RocketMQ 刷盘策略与复制策略

    Apache RocketMQ之JMS基本概念及使用:https://www.jianshu.com/p/d2e3fd77c4f4 Apache Rocket...

    zoro
  • 『互联网架构』软件架构-rocketmq之部署(61)

    PS:终于安装成功了,2主2从。下一节说说细节和如何测试rocketmq。特别注意的是在broker的properties文件我都在源码上传的。但是里面有个属性...

    IT架构圈
  • RocketMQ源码编译安装

    Producer:消息生产者,负责产生消息,一般由业务系统负责产生消息 Consumer:消息消费者,负责消费消息,一般是后台系统负责异步消费 Push Con...

    端碗吹水
  • 5分钟不到!Docker搭建RocketMQ,史上最快教程!

    最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。至于有多简单呢,在本机已有...

    java进阶架构师
  • RocketMQ系列(二)环境搭建

    RocketMQ的基本概念在上一篇中给大家介绍了,这一节将给大家介绍环境搭建。RocketMQ中最基础的就是NameServer,我们先来看看它是怎么搭建的。

    小忽悠
  • RocketMQ系列(二)环境搭建

    RocketMQ的基本概念在上一篇中给大家介绍了,这一节将给大家介绍环境搭建。RocketMQ中最基础的就是NameServer,我们先来看看它是怎么搭建的。

    小忽悠
  • 腾讯宣布开源 RoP:Apache Pulsar 支持原生 RocketMQ 协议

    RocketMQ 用户可以无缝迁移到 Apache Pulsar 了。自此,Apache Pulsar 补齐了兼容主流消息队列协议的能力。

    深度学习与Python
  • 腾讯宣布开源 RoP:Apache Pulsar 支持原生 RocketMQ 协议

    RocketMQ 用户可以无缝迁移到 Apache Pulsar 了。自此,Apache Pulsar 补齐了兼容主流消息队列协议的能力。

    stevel
  • 【RocketMQ系列】RocketMQ集群,RocketMQ-on-DLedger集群

    「单Master模式」风险较大,「一旦Broker重启或者宕机时,会导致整个服务不可用」。不建议线上环境使用,可以用于本地测试。

    行百里er
  • 腾讯宣布开源 RoP:Apache Pulsar 支持原生 RocketMQ 协议

    ? 导读 RocketMQ 用户可以无缝迁移到 Apache Pulsar 了。自此,Apache Pulsar 补齐了兼容主流消息队列协议的能力。 我们很高...

    腾讯云中间件团队
  • 【分布式事务】基于RocketMQ搭建生产级消息集群?

    目前很多互联网公司的系统都在朝着微服务化、分布式化系统的方向在演进,这带来了很多好处,也带来了一些棘手的问题,其中最棘手的莫过于数据一致性问题了。早期我们的软件...

    用户5927304

扫码关注云+社区

领取腾讯云代金券