分布式消息服务ROCKETMQ版-使用ACL权限访问:消费者增加用户认证信息

时间:2024-05-15 15:07:40

消费者增加用户认证信息

无论是普通消息、顺序消息、定时消息,还是事务消息,都参考如下代码。以下加粗内容需要替换为实例自有信息,请根据实际情况替换。

import time

from rocketmq.client import PushConsumer, ConsumeStatus


def callback(msg):
    print(msg.id, msg.body, msg.get_property('property'))
    return ConsumeStatus.CONSUME_SUCCESS


def start_consume_message():
    consumer = PushConsumer('consumer_group')
    consumer.set_name_server_address('192.168.0.1:8100')
    # 设置权限(角色名和密钥)
    consumer.set_session_credentials(
        "ROCKETMQ_AK",  # 角色名称
        "ROCKETMQ_SK",  # 角色密钥
        ''
    )#用户名和密钥直接硬编码到代码中或者明文存储都存在很大的风险,建议在配置文件或者环境变量中密文存放,使用时解密。

    consumer.subscribe('TopicTest', callback)
    print('start consume message')
    consumer.start()

    while True:
        time.sleep(3600)


if __name__ == '__main__':
    start_consume_message()

示例代码中的参数说明如下,请参考收集连接信息获取参数值。

  • consumer_group:表示消费组名称。
  • 192.168.0.1:8100:表示实例连接地址和端口。
  • ROCKETMQ_AK:表示用户名。创建用户的步骤,请参见创建用户
  • ROCKETMQ_SK:表示用户的密钥。
  • TopicTest:表示Topic名称。
support.huaweicloud.com/devg-hrm/hrm-devg-022.html