最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

異常排查記錄amqp協(xié)議鏈接陷阱

 更新時(shí)間:2022年02月24日 14:35:34   作者:kl  
這篇文章主要介紹了一次關(guān)于amqp協(xié)議鏈接陷阱-An?unexpected?connection?driver?error?occured的異常排查記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助

前言

amqp是一種通用的消息隊(duì)列數(shù)據(jù)傳輸協(xié)議,典型的MQ應(yīng)用RabbitMQ就實(shí)現(xiàn)了amqp協(xié)議,所以,我們?cè)谑褂胊mqp-client鏈接rabbitmq時(shí),可以使用amqp的鏈接協(xié)議連接rabbitmq。但是博主在嘗試使用amqp協(xié)議鏈接時(shí),碰到了一個(gè)隱藏的連接協(xié)議規(guī)范問題,故記錄在此。

amqp協(xié)議文檔:https://www.rabbitmq.com/uri-spec.html

問題背景

  • amqp-client版本:5.4.x
  • amqp-url:amqp://keking:kk123456@192.168.1.226:5672/

異常信息

異常一:

11:49:12.329 [AMQP Connection 192.168.1.226:5672] ERROR com.rabbitmq.client.impl.ForgivingExceptionHandler - An unexpected connection driver error occured
java.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)

原因分析

異常一分析:

首先拋出上面異常,是因?yàn)閞abbitmq服務(wù)器拒絕了你的操作,中斷了你的連接,所以一般應(yīng)用在剛啟動(dòng)建立連接時(shí)并不會(huì)報(bào)錯(cuò),而是在發(fā)送數(shù)據(jù)時(shí)報(bào)鏈接的錯(cuò)誤。拒絕操作的原因是當(dāng)前鏈接的賬號(hào)沒有vhost的操作權(quán)限。那么基于這個(gè)原因,很可能是如下的問題:

1、當(dāng)前賬號(hào)沒有權(quán)限

2、當(dāng)前賬號(hào)沒有操作具體的vhost的權(quán)限

網(wǎng)上很多人的問題都是第一個(gè),忘記給賬號(hào)賦值權(quán)限了,博主的問題是因?yàn)閍mqp的連接串有問題,導(dǎo)致鏈接了錯(cuò)誤的vhost,所以表象就是沒有權(quán)限。rabbitmq默認(rèn)的vhost是“/”,amqp://keking:kk123456@192.168.1.226:5672/連接串代表的vhost并不是“/”,而是“”。

異常二分析:

針對(duì)異常二的問題,在amqp鏈接協(xié)議中,vhost部分的斜桿目錄需要使用%2f代替,不然客戶端在解析URI的時(shí)候,分割鏈接時(shí)就會(huì)拋出協(xié)議不正確的異常

解決問題

amqp鏈接協(xié)議詳情如下:

所以,要鏈接到“/”的vhost,正確的鏈接應(yīng)該要在尾部加上“%2f”,如

“amqp://keking:kk123456@192.168.1.226:5672/%2f”

以上就是異常排查記錄amqp協(xié)議鏈接陷阱的詳細(xì)內(nèi)容,更多關(guān)于amqp協(xié)議鏈接異常的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java web實(shí)現(xiàn)自動(dòng)登錄功能

    java web實(shí)現(xiàn)自動(dòng)登錄功能

    這篇文章主要為大家詳細(xì)介紹了java web實(shí)現(xiàn)自動(dòng)登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • java線程并發(fā)semaphore類示例

    java線程并發(fā)semaphore類示例

    Java 5.0里新加了4個(gè)協(xié)調(diào)線程間進(jìn)程的同步裝置,它們分別是Semaphore, CountDownLatch, CyclicBarrier和Exchanger,本例主要介紹Semaphore,Semaphore是用來管理一個(gè)資源池的工具,可以看成是個(gè)通行證
    2014-01-01
  • Java中this,static,final,const用法詳解

    Java中this,static,final,const用法詳解

    這篇文章主要介紹了Java中this,static,final,const用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Java?NIO?中?Selector?解析

    Java?NIO?中?Selector?解析

    這篇文章主要介紹了Java?NIO?中?Selector,Selector即選擇器,選擇器提供選擇執(zhí)行已經(jīng)就緒的任務(wù)的能力即為翻譯為多路復(fù)用,下面文章對(duì)Selector詳細(xì)介紹內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • JAVA日常開發(fā)中讀寫XML的方法詳解

    JAVA日常開發(fā)中讀寫XML的方法詳解

    這篇文章主要介紹了JAVA日常開發(fā)中讀寫XML的相關(guān)資料,詳細(xì)講解了在Java中如何使用DOM(文檔對(duì)象模型)和SAX(簡(jiǎn)單API?for?XML)兩種方式讀取XML文件,以及如何使用DOM和JAXB(Java?Architecture?for?XML?Binding)兩種方式寫入XML文件,需要的朋友可以參考下
    2024-12-12
  • SpringBoot?表單提交全局日期格式轉(zhuǎn)換器實(shí)現(xiàn)方式

    SpringBoot?表單提交全局日期格式轉(zhuǎn)換器實(shí)現(xiàn)方式

    這篇文章主要介紹了SpringBoot?表單提交全局日期格式轉(zhuǎn)換器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Java正則表達(dá)式Pattern和Matcher原理詳解

    Java正則表達(dá)式Pattern和Matcher原理詳解

    這篇文章主要介紹了Java正則表達(dá)式Pattern和Matcher原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Java通過值查找對(duì)應(yīng)的枚舉的實(shí)現(xiàn)

    Java通過值查找對(duì)應(yīng)的枚舉的實(shí)現(xiàn)

    本文主要介紹了Java通過值查找對(duì)應(yīng)的枚舉的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • Springboot?maven項(xiàng)目配置文件覆蓋問題的處理

    Springboot?maven項(xiàng)目配置文件覆蓋問題的處理

    這篇文章主要介紹了Springboot?maven項(xiàng)目配置文件覆蓋問題的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java高并發(fā)的用戶線程和守護(hù)線程詳解

    java高并發(fā)的用戶線程和守護(hù)線程詳解

    本篇文章主要介紹了淺談java中守護(hù)線程與用戶線程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-10-10

最新評(píng)論

涞源县| 车险| 扎囊县| 仙桃市| 民乐县| 工布江达县| 汝南县| 定日县| 永顺县| 澄城县| 崇左市| 锦州市| 大城县| 通化市| 库伦旗| 陕西省| 大新县| 晋江市| 庆阳市| 诸城市| 沙雅县| 肥西县| 乌什县| SHOW| 安泽县| 房产| 保亭| 七台河市| 龙江县| 高唐县| 厦门市| 留坝县| 南岸区| 壶关县| 甘谷县| 襄城县| 张掖市| 淮滨县| 吉安县| 弥渡县| 秭归县|