【消息中间件】在Docker下安装的RocketMQ,使用mqadmin命令报错解决[10015:signature-failed]

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
注册配置 MSE Nacos/ZooKeeper,118元/月
性能测试 PTS,5000VUM额度
简介: 前在Docker下安装了RocketMQ以及他的管理平台,但是管理平台在运维的时候只能满足我们部分的需求,所以为了在集群运维时能够的得心应手,研究了下mqadmin的使用,没想到一开始就遇到了报错,在这里和大家分享下解决的方法。

前言

大家好,我是小郭,之前在Docker下安装了RocketMQ以及他的管理平台,但是管理平台在运维的时候只能满足我们部分的需求,所以为了在集群运维时能够的得心应手,研究了下mqadmin的使用,没想到一开始就遇到了报错,在这里和大家分享下解决的方法。

使用mqadmin的异常信息

[rocketmq@9721b06bb988 bin]$ mqadmin topicList -n 127.0.0.1:9876
RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.PlatformDependent0).
RocketMQLog:WARN Please initialize the logger system properly.
org.apache.rocketmq.tools.command.SubCommandException: TopicListSubCommand command failed
        at org.apache.rocketmq.tools.command.topic.TopicListSubCommand.execute(TopicListSubCommand.java:113)
        at org.apache.rocketmq.tools.command.MQAdminStartup.main0(MQAdminStartup.java:139)
        at org.apache.rocketmq.tools.command.MQAdminStartup.main(MQAdminStartup.java:90)
Caused by: org.apache.rocketmq.acl.common.AclException: [10015:signature-failed] unable to calculate a request signature. error=[10015:signature-failed] unable to calculate a request signature. error=Algorithm HmacSHA1 not available
        at org.apache.rocketmq.acl.common.AclSigner.signAndBase64Encode(AclSigner.java:84)
        at org.apache.rocketmq.acl.common.AclSigner.calSignature(AclSigner.java:73)
        at org.apache.rocketmq.acl.common.AclSigner.calSignature(AclSigner.java:68)
        at org.apache.rocketmq.acl.common.AclUtils.calSignature(AclUtils.java:69)
        at org.apache.rocketmq.acl.common.AclClientRPCHook.doBeforeRequest(AclClientRPCHook.java:44)
        at org.apache.rocketmq.remoting.netty.NettyRemotingAbstract.doBeforeRpcHooks(NettyRemotingAbstract.java:172)
        at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:368)
        at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicListFromNameServer(MQClientAPIImpl.java:1398)
        at org.apache.rocketmq.tools.admin.DefaultMQAdminExtImpl.fetchAllTopicList(DefaultMQAdminExtImpl.java:253)
        at org.apache.rocketmq.tools.admin.DefaultMQAdminExt.fetchAllTopicList(DefaultMQAdminExt.java:218)
        at org.apache.rocketmq.tools.command.topic.TopicListSubCommand.execute(TopicListSubCommand.java:107)
        ... 2 more
Caused by: org.apache.rocketmq.acl.common.AclException: [10015:signature-failed] unable to calculate a request signature. error=Algorithm HmacSHA1 not available
        at org.apache.rocketmq.acl.common.AclSigner.sign(AclSigner.java:63)
        at org.apache.rocketmq.acl.common.AclSigner.signAndBase64Encode(AclSigner.java:79)
        ... 12 more
Caused by: java.security.NoSuchAlgorithmException: Algorithm HmacSHA1 not available
        at javax.crypto.Mac.getInstance(Mac.java:181)

根据错误的信息我们主要看一下错误编码10015,主要说的是signature-failed,不能够计算请求的签名

解决方案

方案一:上网搜索的方案都是修改Broker下的tools.sh文件,在文件中添加jre/lib/ext目录,我也跟着配置了一下,但是发现好像依然没有办法解决报错的问题。

方案二:在部署RocketMQ集群的虚拟机上执行export NAMESRV_ADDR=ip:9876,我试了下也没有小郭

方案三:进入jdk目录中找到sunjec_provider.jar,将jar包复制到Broker的lib下,在输入命令完成运行

网络异常,图片无法展示
|

再次运行 就可以看到正确的输出了

[rocketmq@d4f9b634b4b2 bin]$ mqadmin topicList
RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.PlatformDependent0).
RocketMQLog:WARN Please initialize the logger system properly.
%RETRY%please_rename_unique_group_name
RMQ_SYS_TRANS_HALF_TOPIC
%RETRY%scGroup
%RETRY%please_rename_unique_group_name_4
TRANS_CHECK_MAX_TIME_TOPIC


相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
|
消息中间件 编解码 Docker
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
124 1
【Docker项目实战】Docker部署RabbitMQ消息中间件
|
1月前
|
消息中间件 数据库
RabbitMQ启动报错:Error during startup: {error, {schema_integrity_check_failed,
通过上述步骤,可以逐步排查和解决RabbitMQ启动时出现的 `Error during startup: {error, {schema_integrity_check_failed, ...}}`错误。这些步骤包括检查磁盘空间、修复文件权限、清理Mnesia数据库、检查日志文件以及升级或重装RabbitMQ。希望这些方法能帮助您解决问题,使RabbitMQ顺利启动并正常运行。
162 1
|
2月前
|
安全 Docker 容器
Docker中运行容器时Operation not permitted报错问题解决
【10月更文挑战第2天】Docker中运行容器时Operation not permitted报错问题解决
628 3
|
2月前
|
消息中间件 数据安全/隐私保护 Docker
Docker安装rabbitmq
如何使用Docker安装和配置RabbitMQ服务,包括拉取RabbitMQ镜像、创建容器、配置持久化和访问管理界面的步骤。
180 0
Docker安装rabbitmq
|
2月前
|
搜索推荐 应用服务中间件 nginx
docker与containerd镜像获取及导出导入的区别与注意事项(报错信息:ctr: content digest sha256........ac47: not found)
docker与containerd镜像获取及导出导入的区别与注意事项(报错信息:ctr: content digest sha256........ac47: not found)
109 2
|
2月前
|
JavaScript 前端开发 Docker
拿下奇怪的前端报错(二):nvm不可用报错`GLIBC_2.27‘‘GLIBCXX_3.4.20‘not Found?+ 使用docker构建多个前端项目实践
本文介绍了在多版本Node.js环境中使用nvm进行版本管理和遇到的问题,以及通过Docker化构建流程来解决兼容性问题的方法。文中详细描述了构建Docker镜像、启动临时容器复制构建产物的具体步骤,有效解决了不同项目对Node.js版本的不同需求。
115 0
|
2月前
|
网络虚拟化 Docker 容器
docker Desktop报错 error pulling image configuration 处理
docker Desktop报错 error pulling image configuration 处理
53 0
|
2月前
|
网络协议 应用服务中间件 Linux
docker常见报错提示WARNING: IPv4 forwarding is disabled. Networking will not work.或/usr/bin/docker-current:
### 故障与解决方法概览 1. **故障现象**:运行 `docker run -d -P httpd:centos` 时提示“IPv4转发已禁用,网络将无法工作”。 - **解决方法**:通过编辑 `/etc/sysctl.conf` 设置 `net.ipv4.ip_forward=1` 并执行 `sysctl -p` 启用路由转发,然后重启 Docker 服务。
|
3月前
|
Shell 数据安全/隐私保护 Docker
9-2|docker rm报错
9-2|docker rm报错
|
3月前
|
Unix Shell Linux
5-15|Docker报错OCI runtime exec failed: exec failed: unable to start container process: exec: “/bin/ba
5-15|Docker报错OCI runtime exec failed: exec failed: unable to start container process: exec: “/bin/ba

相关产品

  • 云消息队列 MQ