使用ACL权限访问
实例开启ACL访问控制后,消息生产者和消费者都需要增加用户认证信息。
准备环境
开源的Java客户端支持连接分布式消息服务RocketMQ版,推荐使用的客户端版本为5.1.4。
- 使用Maven方式引入依赖。
<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>5.1.4</version> </dependency> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-acl</artifactId> <version>5.1.4</version> </dependency>
- 下载依赖JAR包。
生产者增加用户认证信息
- 普通消息、顺序消息和定时消息,增加如下代码。
RPCHook rpcHook = new AclClientRPCHook(new SessionCredentials("ACL_User_Name", "ACL_Secret_Key")); DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName", rpcHook);
- 事务消息,增加如下代码。
RPCHook rpcHook = new AclClientRPCHook(new SessionCredentials("ACL_User_Name", "ACL_Secret_Key")); TransactionMQProducer producer = new TransactionMQProducer("ProducerGroupName", rpcHook);
ACL_User_Name为用户名,ACL_Secret_Key为用户的密钥。创建用户的步骤,请参见创建用户。为了确保用户名和密钥的安全性,建议对用户名和密钥进行加密处理。
消费者增加用户认证信息
RPCHook rpcHook = new AclClientRPCHook(new SessionCredentials("ACL_User_Name", "ACL_Secret_Key")); DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(null, "ConsumerGroupName", rpcHook);
ACL_User_Name为用户名,ACL_Secret_Key为用户的密钥。创建用户的步骤,请参见创建用户。为了确保用户名和密钥的安全性,建议对用户名和密钥进行加密处理。