php エディタ Xinyi は今日、AMQP プロトコルに基づくメッセージング フレームワークである Spring AMQP を紹介します。ただし、Spring AMQP を使用すると、「互換性のある認証メカニズムが見つかりません - サーバーを提供しています」というエラーが発生することがあります。このエラー メッセージはわかりにくく、解決方法がわからない場合があります。次に、このエラーの原因を詳しく説明し、誰もが Spring AMQP フレームワークをスムーズに使用できるようにするための解決策を提供します。
外部認証メカニズム (https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl) を介して Spring Boot アプリケーションを Rabbit MQ に接続しようとしています。
次のエラーが表示されます:
リーリー依存関係:
リーリーrabbitmq バージョン: Rabbitmq:3.12.1-management
rabbitmq.conf には次のプロパティが含まれます:
リーリーアプリケーションのプロパティ:
リーリーsasl 設定を含めるために次のメソッドを宣言しました:
org.springframework.amqp.amqpioexception: java.io.ioexception: no compatible authentication mechanism found - server offered [] at org.springframework.amqp.rabbit.support.rabbitexceptiontranslator.convertrabbitaccessexception(rabbitexceptiontranslator.java:70) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.connection.abstractconnectionfactory.createbareconnection(abstractconnectionfactory.java:594) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.connection.cachingconnectionfactory.createconnection(cachingconnectionfactory.java:687) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.connection.connectionfactoryutils.createconnection(connectionfactoryutils.java:257) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.core.rabbittemplate.doexecute(rabbittemplate.java:2225) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.core.rabbittemplate.execute(rabbittemplate.java:2198) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.core.rabbittemplate.execute(rabbittemplate.java:2178) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.core.rabbitadmin.getqueueinfo(rabbitadmin.java:459) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.core.rabbitadmin.getqueueproperties(rabbitadmin.java:443) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.listener.abstractmessagelistenercontainer.attemptdeclarations(abstractmessagelistenercontainer.java:1891) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.listener.abstractmessagelistenercontainer.redeclareelementsifnecessary(abstractmessagelistenercontainer.java:1858) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.listener.simplemessagelistenercontainer$asyncmessageprocessingconsumer.initialize(simplemessagelistenercontainer.java:1384) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.listener.simplemessagelistenercontainer$asyncmessageprocessingconsumer.run(simplemessagelistenercontainer.java:1230) ~[spring-rabbit-3.0.5.jar:3.0.5] at java.base/java.lang.thread.run(thread.java:833) ~[na:na] caused by: java.io.ioexception: no compatible authentication mechanism found - server offered [] at com.rabbitmq.client.impl.amqconnection.start(amqconnection.java:343) ~[amqp-client-5.17.0.jar:5.17.0] at com.rabbitmq.client.connectionfactory.newconnection(connectionfactory.java:1225) ~[amqp-client-5.17.0.jar:5.17.0] at com.rabbitmq.client.connectionfactory.newconnection(connectionfactory.java:1173) ~[amqp-client-5.17.0.jar:5.17.0] at org.springframework.amqp.rabbit.connection.abstractconnectionfactory.connectaddresses(abstractconnectionfactory.java:632) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.connection.abstractconnectionfactory.connect(abstractconnectionfactory.java:607) ~[spring-rabbit-3.0.5.jar:3.0.5] at org.springframework.amqp.rabbit.connection.abstractconnectionfactory.createbareconnection(abstractconnectionfactory.java:557) ~[spring-rabbit-3.0.5.jar:3.0.5] ... 12 common frames omitted
rabbitmq 設定側の listeners.ssl.default=5672
が何なのかはわかりませんが、上書きしているようです。デフォルトのSSLポートをそのポートに設定します。
スプリングブートのロジックは次のとおりです:
リーリー ###場所:### リーリーしたがって、ポートを明示的に指定することを検討してください。
リーリーrabbittemplate
Bean をカスタマイズする必要もない場合があります。 connectionfactorycustomizer
を追加して、 defaultsaslconfig.external
を自動構成された com に設定するだけです。 Rabbitmq.client.connectionfactory
。
setautomaticrecoveryenabled(true)
//m.sbmmt.com/link/3c0de3fec9ab8a3df01109251f137119
以上がSpring amqp - 互換性のある認証メカニズムが見つかりません - 提供サーバーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。