本文档介绍 RocketMQ 客户端的使用建议,推荐在使用消息队列 RocketMQ版进行消息生产与消费之前,阅读以下使用建议,提高接入效率和业务稳定性。
RocketMQ 的日志一般是单独配置的,业务日志独立管理。日志默认保存在 ${user.home}/logs/rocketmqlogs
目录的 10 个文件中,每个文件大小为 1G,日志文件名为 rocketmq_client.log
。有些业务的用户目录的磁盘空间不大,很容易造成磁盘空间不足。您可以通过设置系统变量的方式配置 RocketMQ 的日志:
-Drocketmq.client.logRoot=指定的日志目录 -Drocketmq.client.logFileMaxIndex=指定日志文件个数 -Drocketmq.client.logFileMaxSize=单个日志文件大小
推荐在不同的集群设置不同的 instanceName。
默认情况下,在一个 Java 进程里面,RocketMQ 的生产者、消费者会复用连接,客户端会根据 clientId 来决定是否创建新连接。如果 clientId 相同则复用同一个 ClientInstance。clientId 的生成规则是 clientIP@pid@unitName
,其中 clientIP 就是本机 ip,pid 表示进程号,unitName 默认为空。
在一个进程里面,如果只连接一个 RocketMQ 集群,这种方式是不存在问题的。但是如果一个进程里面连接多个 RocketMQ 集群,这种方式就会存在问题。因为多个集群的 clientId 是相同的,所以只会创建一个 ClientInstance,导致后连接的集群连接失败。
"No route info of this topic"
的错误主要由以下几种原因造成: