在多区域环境中扩展Microsoft机器人框架应用程序

时间:2019-03-29 05:15:07

标签: botframework azure-bot-service azure-load-balancer

我正在Azure中设置MS Bot框架服务环境。我能够成功为单个应用程序建立连接到单个机器人服务的渠道。现在,我们想在全球范围内扩展此环境,并希望建立多区域环境。当用户从渠道应用程序(MS团队)连接时,他们应该能够连接到最近的Azure区域并获得响应。我们如何为Microsoft bot框架Web应用程序bot服务设置地理负载平衡器?

我们试图设置流量管理器,但是由于Microsoft机器人通道注册服务具有Microsoft APP ID(ClientID)和密码,并且只能连接到一个消息传递端点URL,因此我们受到限制

实际结果: Microsoft Bot频道注册应用程序无法连接到不同区域的多个消息传递终结点,以及如何平衡MS Bot Service的负载。

预期结果: 如何在MS Bot应用程序中实现负载均衡(按区域延迟)?

Sample Scale out diagram

1 个答案:

答案 0 :(得分:0)

允许, Azure机器人通常作为Azure App Services运行。 Azure App Service内置了扩展功能。根据您为App Service选择的定价层,您可以扩展到多达20个实例。如果您处于“隔离”层,则可以转到100个实例。您还可以扩展以增加内存和cpu。这是您可以利用的一些非常强大的资源。

我意识到您正在尝试减少延迟,但是我想首先指出扩展功能。您认为目前尚无法克服另一个挑战。

如果MS Teams是您用户使用的唯一渠道,那么尝试独自管理流量可能会无效。您的约束将是MS Teams服务所在的位置。团队是在与您的机器人对话,而不是直接与用户对话。

路径是这样的: 用户-> MS团队-> Azure Bot服务-> Azure应用服务。

由于您无法控制“团队到机器人”的连接,因此无法管理流量。

您可以将多个漫游器部署到不同的区域,然后指示您的用户连接到Teams中相应的区域漫游器渠道。这不是自动的流量管理,但至少会提供您正在寻找的某些区域支持。