English | 简体中文 | RocketMQ 官网
不同于基于 RemotingCommand 协议的版本,当前的客户端基于 RocektMQ 5.0 存算分离架构进行设计开发,是 RocketMQ 社区目前推荐的接入方式,也是未来客户端演进的主要方向。
在开始客户端的部分之前,所需的一些前期工作(或者参照这里):
根据构建系统增加对应的客户端依赖,并将 ${rocketmq.version}
替换成中央仓库中最新的版本。
<!-- For Apache Maven --> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client-java</artifactId> <version>${rocketmq.version}</version> </dependency>
// Kotlin DSL for Gradle implementation("org.apache.rocketmq:rocketmq-client-java:${rocketmq.version}")
// Groovy DSL for Gradle implementation 'org.apache.rocketmq:rocketmq-client-java:${rocketmq.version}'
rocketmq-client-java
是一个经过 shade 的版本,这意味着它本身的依赖是不能被手动替换的。
通常情况下,shade 是规避多个类库之间依赖冲突的有效方式。由于一些特殊场景的存在,客户端仍然提供未经 shade 的版本。如果不确定具体应该使用哪个版本,shade 之后的版本是首选。
<!-- For Apache Maven --> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client-java-noshade</artifactId> <version>${rocketmq.version}</version> </dependency>
// Kotlin DSL for Gradle implementation("org.apache.rocketmq:rocketmq-client-java-noshade:${rocketmq.version}")
// Groovy DSL for Gradle implementation 'org.apache.rocketmq:rocketmq-client-java-noshade:${rocketmq.version}'
内部的代码示例可以帮助你上手不同的客户端和消息类型。
采用 Logback 来作为实现,为了保证日志能够始终被有效地持久化,rocketmq-client-java
中集成了一个 shade 之后的 Logback,并会为其使用单独的配置文件。
客户端提供了一些可配置的日志参数,均支持 JVM 系统参数(示例: java -Drocketmq.log.level=INFO -jar foobar.jar
)或环境变量指定:
rocketmq.log.level
: 日志输出级别,默认为 INFO。rocketmq.log.root
: 日志输出根目录,默认为 $HOME/logs/rocketmq
,此时日志输出路径为 $HOME/logs/rocketmq/rocketmq-client.log
。注意:文件名 rocketmq-client.log
不可改。rocketmq.log.file.maxIndex
: 日志文件最大保留个数,默认为 10(单个日志文件大小限制为 64 MB,暂不支持调整)。特别地,如果有调试的需求,可以通过把 mq.consoleAppender.enabled
设置成 true
将客户端的日志同时输出到控制台。