You need to enable JavaScript to run this app.
导航

RocketMQ 客户端使用建议

最近更新时间2023.06.01 14:51:23

首次发布时间2023.06.01 14:51:23

本文档介绍 RocketMQ 客户端的使用建议,推荐在使用消息队列 RocketMQ版进行消息生产与消费之前,阅读以下使用建议,提高接入效率和业务稳定性。

日志配置

RocketMQ 的日志一般是单独配置的,业务日志独立管理。日志默认保存在 ${user.home}/logs/rocketmqlogs 目录的 10 个文件中,每个文件大小为 1G,日志文件名为 rocketmq_client.log。有些业务的用户目录的磁盘空间不大,很容易造成磁盘空间不足。您可以通过设置系统变量的方式配置 RocketMQ 的日志:

-Drocketmq.client.logRoot=指定的日志目录
-Drocketmq.client.logFileMaxIndex=指定日志文件个数
-Drocketmq.client.logFileMaxSize=单个日志文件大小

InstanceName 问题

推荐在不同的集群设置不同的 instanceName。
默认情况下,在一个 Java 进程里面,RocketMQ 的生产者、消费者会复用连接,客户端会根据 clientId 来决定是否创建新连接。如果 clientId 相同则复用同一个 ClientInstance。clientId 的生成规则是 clientIP@pid@unitName,其中 clientIP 就是本机 ip,pid 表示进程号,unitName 默认为空。
在一个进程里面,如果只连接一个 RocketMQ 集群,这种方式是不存在问题的。但是如果一个进程里面连接多个 RocketMQ 集群,这种方式就会存在问题。因为多个集群的 clientId 是相同的,所以只会创建一个 ClientInstance,导致后连接的集群连接失败。

找不到 Topic

"No route info of this topic"的错误主要由以下几种原因造成:

  • 没有在火山引擎消息队列 RocketMQ控制台中创建 Topic。
  • 连接了多个 RocketMQ 实例,但没有设置 instanceName。
  • Java 客户端存在多个 netty 版本依赖,导致有些方法找不到。