rocketmq的安装与重试机制(上)

1.centos7源码部署rockermq

  1. 安装rocketmq需要有jdk和maven环境,这两者的安装就不在这里展示;
  2. 下载安装包:https://archive.apache.org/dist/rocketmq/4.4.0/rocketmq-all-4.4.0-source-release.zip
  3. 解压安装包:unzip rocketmq-all-4.4.0-source-release.zip
  4. 进入目录:cd rocketmq-all-4.4.0
  5. 编译打包(耗时会比较长,大概20分钟):mvn -Prelease-all -DskipTests clean install -U
  6. 打包成功后,运行nameserver服务:cd distribution/target/apache-rocketmq && sh bin/mqnamesrv
  7. 后台启动 nohup sh bin/mqnamesrv & 查看启动日志 tail -f nohup.out
  8. 启动brokerserver服务 nohup sh bin/mqbroker -n localhost:9876 & 查看启动日志 tail -f nohup.out
  9. 查看状态 jps,出现NamesrvStartup、BrokerStartup说明启动成功。
注意:启动后过程可能出现内存不足的情况,需要修改nameserver和broker内存,
*找到runserver.sh修改JAVA_OPT:JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
*找到runbroker.sh修改JAVA_OPT:JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m"

2.centos7源码部署rockermq控制台

  1. 解压安装包 unzip rocketmq-externals-master.zip
  2. 进入目录:cd rocketmq-externals-master
  3. 修改pom.xml版本号(官方bug): cd rocketmq-console && vim pom.xml 修改为 <rocketmq.version>4.4.0</rocketmq.version>
  4. 修改application.xml里面的nameserver地址:rocketmq.config.namesrvAddr=127.0.0.1:9876
  5. 在rocketmq-console目录下编译 mvn clean package -Dmaven.test.skip=true
  6. 启动 cd target && nohup java -jar rocketmq-console-ng-1.0.0.jar &
  7. 查看日志 tail -f nohup.out
  8. 访问ip:8080
    在这里插入图片描述

3.生产和消费消息重试及处理

生产者重试(异步和sendOneWay下配置无效):

  1. 本身内部支持重试,默认次数是2次,可以通过producer.setRetryTimeWhenSendFailed(重试次数)进行修改。
  2. 为了保证消息的唯一性,broker不收到消费者的重复消息,可以为消息设置key值来保证唯一性:
    public Message(String topic, String tags, String keys, byte[] body) {
    this(topic, tags, keys, 0, body, true); }

消费者重试

  1. 消费者默认重试16次,可以配置messageDelayLevel来修改重试的时间间隔。但一般不会重试这么多次,可以在程序上进行人工补偿,重试3次后停止重试,然后记录数据库,发短信通知开发人员或者运营人员。
  2. 消费重试只针对集群消费方式生效;广播方式不提供失败重试特性,即消费失败后,失败消息不再重试,继续消费新的消息。
  3. 消费端去重(保证消息幂等性):利用唯一ID标识每条消息,消费成功处理和去重处理通过事务的形式进行保存,每次消费之前都先查一遍,如果存在就说明消费过了直接返回消费成功。去重处理有以下两种方式
*数据库去重表:某个字段使用Message的key做唯一索引
*redis:通过setNX() 的true和false来保证消费是否已经消费
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值