开发者社区 > 云原生 > 云消息队列 > 正文

Apache RocketMQ中现在能够理解brokerRole参数在controller模式下失?

问题1:Apache RocketMQ中现在能够理解brokerRole参数在controller模式下失效 但是选举出来的主从之间的复制方式是同步还是异步的呢?改成5.1.1的controller之后 开启了acl broker报如下错误: 2023-05-30 15:28:36 ERROR BrokerControllerScheduledThread1 - syncTimerCheckPoint Exception, 10.244.254.159:10911 org.apache.rocketmq.client.exception.MQBrokerException: CODE: 1 DESC: org.apache.rocketmq.acl.common.AclException: No accessKey is configured, org.apache.rocketmq.acl.plain.PlainPermissionManager.validate(PlainPermissionManager.java:607) BROKER: 10.244.254.159:10911在5.1.1的里面acl配置有什么变化吗? 问题2:那broker里面的acl怎么配置呢?我设置了plain_acl.yml文件 还是报这个错误,有人了解rocketmq5.1.1的broker的acl配置吗 我感觉是不是acl的代码改了

展开
收起
真的很搞笑 2023-06-06 13:44:13 267 0
2 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com
    1. 在 Apache RocketMQ 的 Controller 模式下,Broker 之间的数据同步方式是异步的。当主 Broker 发生数据变更时,它会首先将数据变更写入到本地磁盘中,并将数据变更信息发送给所有 Slave Broker,之后主 Broker 就会立即进行下一次数据变更操作,而 Slave Broker 则会异步从主 Broker 中拉取最新的数据变更进行更新。

    关于您在升级至 5.1.1 版本后遇到的 ACL 报错问题,原因是 5.1.1 版本的 ACL 权限管理机制发生了较大变化,如果您在升级后使用原先版本的 ACL 配置文件进行配置,可能会出现上述错误。您需要在 5.1.1 版本中重新配置 ACL 相关的权限控制信息才能正常运行。请参考以下步骤进行 ACL 配置:

    1. 创建 ACL 角色配置文件(plain_acl.yml),示例如下:
    users:
       - username: producer
         password: mq_producer_123
         accessKey: producer_akey
         secretKey: producer_skey
         whiteRemoteAddress: "*"
       - username: consumer
         password: mq_consumer_123
         accessKey: consumer_akey
         secretKey: consumer_skey
         whiteRemoteAddress: "*"
    
    roles:
       - roleName: producer
         permissions:
         - action: SUB
           resource:
             - topic=test_topic
         - action: PUB
           resource:
             - topic=test_topic
         - action: SEND_MESSAGE
           resource:
             - topic=test_topic
       - roleName: consumer
         permissions:
         - action: CONSUME
           resource:
             - topic=test_topic
    
    
    1. 在 broker.conf 文件中,添加以下配置项以开启 ACL 相关的配置:
    enablePropertyFilter=true
    plainPasswordFile=./conf/credentials.properties
    plainPermissionPath=./conf/plain_acl.yml
    
    1. 创建 credentials.properties 文件,定义管理员用户和密码,示例如下:
    # 具有超级权限的管理员用户
    accessKey=admin_akey
    secretKey=admin_skey
    users=admin
    
    1. 在应用程序中,您可以使用上述配置的用户名和密码来连接 Apache RocketMQ Broker,并根据角色和权限进行消息发送和消费。
    2023-06-06 16:38:31
    赞同 展开评论 打赏
  • 回答1:如果allAckInSyncStateSet为true,主要看副本是否在SyncStateSet中,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-06-06 13:45:33
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载

    相关镜像