3

我完全不知道如何让 Azure 角色(无论是 Web 角色还是辅助角色)与另一个 Azure 角色进行通信?

我查看了 Service Bus Relays,速度非常可笑——调试时将数据从一个角色获取到另一个角色大约需要 6 个小时。当我通过在云中运行的 Web 服务公开完全相同的数据时,我可以在一分钟内将这些数据下载到我的手机上。荒谬的。我假设数据正在从我的机器发送到云端,然后从那里返回到我的机器。

服务总线中继有一种称为混合的模式,它应该打开直接套接字连接以实现快速通信,但实际上没有关于如何实现这一点的文档。

我已经通过 WCF NetTcpBinding 在一个角色上公开了一项服务,但我不知道如何让另一个角色能够调用它。

我还查看了服务总线队列/订阅,但您可以发送的消息有 256KB 的限制!

我不敢相信缺少文档和教程来解决应该是一个常见场景 - 两个角色之间的快速通信(很可能位于完全相同的物理计算机上!)

非常感谢任何帮助,谢谢!

4

3 回答 3

3

如果您的角色属于同一云服务,则可以通过内部端点访问它们。您可以获取角色和端口的内部 IP 地址并建立 WCF 调用。

这是一个可能有帮助的主题 http://msdn.microsoft.com/en-us/library/windowsazure/hh180158.aspx

于 2013-02-17T02:01:59.557 回答
0

我在这里没有找到任何满意的答案,所以我采取的后续方法是将数据写入sql azure,通过服务总线通知有更新,并让所有订阅者自己从sql中提取更新的数据。它适用于这种特定情况。

尝试通过服务总线发送数据本身速度非常慢。将其用作角色间事件系统(使用服务总线主题/订阅)效果很好。

于 2013-05-08T23:48:23.290 回答
0

您是否考虑过使用 Azure 存储?听起来您想将大数据包从一个 VM 发送到另一个 VM。发送数据的一种相对简单的方法是使用存储 Blob 和队列。首先,将数据写入 blob。然后将消息写入队列,指示数据可用的位置(每个接收器都有自己的队列)。然后接收方下载消息并删除 Blob。这比直接套接字连接慢,但也更简单并且是异步的。异步通信是云系统中的一大优势。使用此解决方案,如果接收器因更新而关闭,它将在稍后恢复时收到消息。

于 2014-08-07T14:31:26.497 回答