如何与Azure进行角色间通信?

如何与Azure进行角色间通信?,azure,Azure,我完全困惑于一个人如何获得一个Azure角色(无论是web角色还是工作者角色)来与另一个Azure角色通信 我看过服务总线继电器,它的速度太荒谬了——在调试过程中,从一个角色到另一个角色的数据传输大约需要6个小时。当我通过在云中运行的web服务公开完全相同的数据时,我可以在一分钟内将这些数据下载到我的手机上。荒唐的我假设数据是从我的机器发送到云,然后再从那里返回到我的机器 服务总线继电器有一种称为“混合”的模式,在这种模式下,它应该打开一个直接的插座连接,以允许快速通信,但实际上没有关于如何实现

我完全困惑于一个人如何获得一个Azure角色(无论是web角色还是工作者角色)来与另一个Azure角色通信

我看过服务总线继电器,它的速度太荒谬了——在调试过程中,从一个角色到另一个角色的数据传输大约需要6个小时。当我通过在云中运行的web服务公开完全相同的数据时,我可以在一分钟内将这些数据下载到我的手机上。荒唐的我假设数据是从我的机器发送到云,然后再从那里返回到我的机器

服务总线继电器有一种称为“混合”的模式,在这种模式下,它应该打开一个直接的插座连接,以允许快速通信,但实际上没有关于如何实现这一点的文档

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

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

我无法相信,对于一个常见的场景——两个角色之间的快速通信(它们很可能位于完全相同的物理计算机上!),缺少文档和教程


非常感谢您的帮助,谢谢

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


这里有一个主题可能会有所帮助

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


试图通过服务总线发送数据本身的速度非常慢。使用它代替角色交互系统(使用服务总线主题/订阅)很好。

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

正确。此外,还有大量文档和教程,介绍两个角色之间的快速沟通这一常见场景。我应该补充一点,队列可能提供更大的可伸缩性和弹性。除了服务总线队列,还有存储服务队列。所以。。。如果它们不在同一个云服务中,那么您必须使用公共端点?虽然这个答案可能适用于属于同一个服务的多个角色(这通常是糟糕的设计),我的解决方案每个服务有一个角色,因此这种方法不起作用。您确实从@Shaun那里得到了一个答案,您甚至从未对其进行过任何类型的后续或澄清。您最初的问题从未指定您的角色是否在同一个云服务中。我认为很明显,没有一个答案是足够的。这个页面上只有一个链接,基本上说是通过(可公开访问的)WCF服务向公众公开您的服务。这不是一个充分或最佳的方法。因为听起来你想从一个VM向另一个VM发送大数据包,Azure存储可能会让你比SQL Azure更快。在主线程中查看我的完整答案。