Azure 服务总线 AMQP 异常

4

我将使用来自此网址的样例 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 Service Bus已将其身份验证从ACS更改为SAS。 它是否也支持SAS身份验证?例如,用户名是SAS策略,密码是SAS策略的密钥。
2. 运行时抛出异常
即使我使用ACS(如果我使用powershell创建命名空间,它仍然是ACS),或者SAS,当运行http://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个回答

2

回复:1. ACS或SAS

是的,您可以使用SAS与AMQP。使用策略名称代替用户名,使用URL编码密钥代替密码。 URL编码是必需的,以处理密钥值中的任何非字母数字字符,如+、/或=。

URL格式为:

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

回复:2. 抛出异常时的运行问题

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

我曾经遇到过完全相同的错误,并通过取消“启用分区”重新创建队列来解决了这个问题。

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

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


0

为了确保,您是否在服务总线命名空间内创建了名为“queue1”的队列。

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

Paolo


嗨,PPatierno,是的,我已经在所有命名空间中创建了一个名为“queue1”的队列。 - kevin_song

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接