千家信息网

amqp协议链接异常怎么排查

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"amqp协议链接异常怎么排查",在日常操作中,相信很多人在amqp协议链接异常怎么排查问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"amqp协议链接异
千家信息网最后更新 2026年11月02日amqp协议链接异常怎么排查

这篇文章主要介绍"amqp协议链接异常怎么排查",在日常操作中,相信很多人在amqp协议链接异常怎么排查问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"amqp协议链接异常怎么排查"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    前言

    amqp是一种通用的消息队列数据传输协议,典型的MQ应用RabbitMQ就实现了amqp协议,所以,我们在使用amqp-client链接rabbitmq时,可以使用amqp的链接协议连接rabbitmq。但是博主在尝试使用amqp协议链接时,碰到了一个隐藏的连接协议规范问题,故记录在此。

    问题背景

    • amqp-client版本:5.4.x

    • amqp-url

    异常信息

    异常一:

    11:49:12.329 [AMQP Connection 192.168.1.226:5672] ERROR com.rabbitmq.client.impl.ForgivingExceptionHandler - An unexpected connection driver error occuredjava.net.SocketException: socket closed        at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_77]        at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_77]        at java.net.SocketInputStream.read(SocketInputStream.java:170) ~[?:1.8.0_77]        at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_77]        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[?:1.8.0_77]        at java.io.BufferedInputStream.read(BufferedInputStream.java:265) ~[?:1.8.0_77]        at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288) ~[?:1.8.0_77]        at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91) ~[amqp-client-5.4.3.jar:5.4.3]        at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164) ~[amqp-client-5.4.3.jar:5.4.3]        at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:596) [amqp-client-5.4.3.jar:5.4.3]        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_77]Disconnected from the target VM, address: '127.0.0.1:0', transport: 'socket'

    异常二:

    java.lang.IllegalArgumentException: Multiple segments in path of AMQP URI: /%2Fapp/kl        at com.rabbitmq.client.ConnectionFactory.setUri(ConnectionFactory.java:348)        at com.rabbitmq.client.ConnectionFactory.setUri(ConnectionFactory.java:370)        at com.jd.blockchain.consensus.mq.factory.RabbitFactory.initConnectionFactory(RabbitFactory.java:42)        at com.jd.blockchain.consensus.mq.factory.RabbitFactory.main(RabbitFactory.java:52)

    原因分析

    异常一分析:

    首先抛出上面异常,是因为rabbitmq服务器拒绝了你的操作,中断了你的连接,所以一般应用在刚启动建立连接时并不会报错,而是在发送数据时报链接的错误。拒绝操作的原因是当前链接的账号没有vhost的操作权限。那么基于这个原因,很可能是如下的问题:

    1、当前账号没有权限

    2、当前账号没有操作具体的vhost的权限

    网上很多人的问题都是第一个,忘记给账号赋值权限了,博主的问题是因为amqp的连接串有问题,导致链接了错误的vhost,所以表象就是没有权限。rabbitmq默认的vhost是"/",amqp://keking:kk123456@192.168.1.226:5672/连接串代表的vhost并不是"/",而是""。

    异常二分析:

    针对异常二的问题,在amqp链接协议中,vhost部分的斜杆目录需要使用%2f代替,不然客户端在解析URI的时候,分割链接时就会抛出协议不正确的异常

    解决问题

    amqp链接协议详情如下:

    所以,要链接到"/"的vhost,正确的链接应该要在尾部加上"%2f",如

    "amqp://keking:kk123456@192.168.1.226:5672/%2f"

    到此,关于"amqp协议链接异常怎么排查"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

    链接 问题 权限 账号 学习 原因 分析 数据 更多 错误 帮助 应用 实用 接下来 代表 信息 典型 前言 原因分析 客户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网加科技 湖北九亚互联网络科技有限公司 深圳市人人互联网科技有限公司 互联网科技公司华为 深圳互联网科技公司 碳银互联网科技 美国互联网黑科技 互联网科技logo 广州善班互联网科技 苏州大垚互联网科技 深圳艾佳互联网科技 一五八零互联网科技 华中科技有哪些互联网大佬 北京三清互联网科技 哈尔滨屹滨互联网科技有限公司 互联网科技大赛获奖感言 上海京穆互联网科技有限公司 广州有谷有贝互联网科技有限公司 互联网时代高科技布局 山东亿川互联网科技有限责任公司 瑰夏咖啡 云信互联网科技有限公司 赫美联合互联网科技 火传媒上海互联网科技 成都玖崟互联网科技有限公司乐商圈怎么样 广州优美互联网科技 华夏恒生科技与互联网科技 宁波跨境商互联网科技有限公司 互联网的科技体现在哪里 株洲百竞科技的互联网营销顾问
    0