rocketmq常见问题及使用 新手篇

一 部署阶段

1.启动命令

nameServer启动:nohup sh bin/mqnamesrv  -n ip地址:9876 & 

broker启动:nohup sh bin/mqbroker -n ip地址:9876 autoCreateTopicEnable=true  -c conf/broker.conf &

注:autoCreateTopicEnable配置是否自动创建主题

 

2.服务关闭命令

nameServer关闭: sh bin/mqshutdown namesrv 

broker关闭: sh bin/mqshutdown broker

 

3.启动Broker如果因为内存不足失败,需要编辑如下两个配置文件,修改JVM内存大小

vi runbroker.sh
vi runserver.sh

参考设置:

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

在Linux中,如果仍然内存溢出,可以尝试配置swap空间。

 

4.在云服务器上部署要注意的问题

4.1 要在安全组中配置rocketmq使用到的几个端口号为开放状态,如下图,否则会出现连接不上的情况

 

 4.2 云服务器实例的公网访问一般通过私有网卡映射完成,在实例内部无法查询到公网IP地址

所带来的影响是,软件自动识别的出的IP地址是内网地址,无法访问,需要显式的配置公网IP地址。

在rocketmq中如何配置,会在下面说明。

 

二 生产者服务发送消息

1.代码报错:connect to <x.x.x.x:10911> failed或者sendDefaultImpl call timeout。

请检查broker启动日志中的brokerIP地址和生产者所在地址是否能连通

The broker[broker-a, x.x.x.x:10911] boot success. serializeType=JSON and name server is x.x.x.x:9876

 这里默认是系统自动识别的IP地址,可能是无法连接的内网地址。

需要在conf/broker.conf中配置brokerIP1,配置为公网IP

 

 为何broker和生产者需要联通,可以参考下图理解。

生产者服务需要和nameServer以及broker进行数据交换,所以它们之间的网络需要是联通的。

同理,消费者服务也需要和nameServer以及broker网络联通。

 

2.消息发送成功后,就可以在管理控制台rocketmq-console中看到发送的消息了。

 

1. RocketMQ的架构是怎样的? RocketMQ的架构主要包括Producer、Broker、Consumer三个组件,其中Producer负责消息的生产,Broker负责消息的存储和转发,Consumer负责消息的消费。 2. 如何保证消息的可靠性? RocketMQ采用了多种方式保证消息的可靠性,比如消息的持久化存储、消息的冗余备份、消息的重试机制、消息的顺序保证等。 3. RocketMQ的消息模型有哪些? RocketMQ的消息模型主要分为点对点模型和发布订阅模型两种。点对点模型中一个消息只能被一个消费者消费,发布订阅模型中一个消息可以被多个消费者消费。 4. RocketMQ的消息存储方式是怎样的? RocketMQ的消息存储方式采用了基于文件的存储方式,将消息存储在磁盘上,同时采用了内存映射的方式提高读写效率。 5. RocketMQ的消息发送流程是怎样的? RocketMQ的消息发送流程主要包括消息的生产、消息的发送、消息的存储和消息的消费四个步骤。其中消息的生产和消费由应用程序完成,消息的发送和存储由RocketMQ的Broker完成。 6. 如何保证消息的顺序性? RocketMQ可以通过设置消息的顺序关键字和消息的队列选择策略来保证消息的顺序性,保证同一个顺序关键字的消息只会被同一个消费者消费,从而保证消息的顺序性。 7. 如何保证消息的高可用性? RocketMQ可以通过Broker的冗余备份、Master-Slave模式、自动故障转移等方式保证消息的高可用性,从而保证系统的稳定性和可靠性。 8. RocketMQ的消息堆积如何处理? RocketMQ可以通过设置消息的存储时间、消息的过期时间、消息的重试机制等方式避免消息的堆积问题,从而保证系统的正常运行。同时也可以通过监控系统对消息的堆积情况进行实时监控和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值