当前位置: 首页 > 知识库问答 >
问题:

Azure服务总线AMQP异常

洪季萌
2023-03-14

我使用此url中的示例http://azure.microsoft.com/en-us/documentation/articles/service-bus-java-how-to-use-jms-api-amqp/.我有两个问题:

1、ACS或SAS

连接URL,

amqps://[username]:[password]@[namespace].servicebus.windows.net

用户名和密码来自ACS身份验证,但Azure服务总线已将其身份验证从ACS更改为SAS。它是否也支持SAS身份验证?就像用户名是SAS策略一样,密码是SAS策略的密钥。

2.运行抛异常

即使我在从运行示例代码时使用ACS(如果我使用powershell创建名称空间,它仍然是ACS)或SAShttp://azure.microsoft.com/en-us/documentation/articles/service-bus-java-how-to-use-jms-api-amqp/,它们都会引发异常并失败。

Exception:"org.apache.qpid.amqp_1_0.client.Sender$SenderCreationException:
Peer did not create remote endpoint for link". 

有没有办法解决这个问题?

顺便说一句,我连接的不是Windows(本地)的服务总线,而是Azure服务总线(云)。谢谢。

共有2个答案

慕容越泽
2023-03-14

可以肯定的是,您是否在服务总线名称空间中创建了名为queue的“queue1”。从您的教程:

本指南假设您已经有一个服务总线命名空间,其中包含一个名为“queue1”的队列。

保罗

傅浩漫
2023-03-14

是的,您可以将SAS与AMQP一起使用。策略名称而不是用户名,URL编码的密钥而不是密码。需要URL编码才能将键值中的任何非字母数字字符处理为、/、或=。

URL格式为:

amqps://<policyname>:<urlencoded(key)>@<namespace>.servicebus.windows.net

确保您的队列没有启用分区。ServiceBus不支持带有分区队列的AMQP,但是默认情况下创建队列时启用了分区。

我遇到了完全相同的错误,并且未选中“启用分区”重新创建队列为我解决了这个问题。

请参阅本文底部的分区实体限制部分:https://msdn.microsoft.com/en-us/library/azure/dn520246.aspx

分区队列和主题仅通过SBMP或HTTP/HTTPS可用。将来将添加AMQP支持。

 类似资料:
  • 我一直在尝试创建一个客户端来连接我的Azure服务总线队列。我一直在参考此文档: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-java-how-to-use-queues#send-消息到队列。 我的代码: 在创建客户端时,我遇到以下错误: 通用域名格式。微软蔚蓝色的服务总线。原语。Service

  • 我尝试将Azure服务总线与ApacheQPID和Spring与事务集成。 但Azure服务总线AMQP实现似乎不支持事务。这是真的吗?我没有找到相关信息。 这是我的JMS配置 这是我的spring集成片段: 它与session transact=“false”配合使用,但与session transact=“true”配合使用时会产生错误: QPID跟踪

  • 我正在开发一个客户端,它可以从Windows服务总线读取消息,该消息是使用发送的。净额。客户端是使用Java开发的,据我所知,它创建会话,但当它创建会话时,使用者抛出一个JMSException,它只告诉我以下消息:amqp:不允许 有线索吗? 顺致敬意,

  • 除了用户名和密码(例如来自ACS的令牌)之外,是否还有其他使用AMQP对Azure服务总线进行授权的方法? 在我的场景中,我希望能够在不公开凭据的情况下为资源级客户端提供对服务总线的访问权限。

  • 我有一个名为“状态更改”的Azure服务总线主题,它有一个名为“混响”的订阅。我正在尝试使用设置订阅主题的方法,但出现错误: 我一直在使用这篇博客文章来尝试让一切正常运行:http://ramblingstechnical.blogspot.co.uk/p/using-azure-service-bus-with-spring-jms.html 我可以使用向主题添加消息,并使用Azure文档中概述

  • 我正在寻找一种解决方案,用于在几个本地数据库之间进行实时数据集成。没有太多的数据转换。我正在评估各种可用的ESB。我认为使用Azure服务总线进行数据集成可以快速开发解决方案。建议使用Azure service bus集成所有内部数据库吗?