0

我在多个区域的 Azure 中有一个网站。每个区域除了网络服务器之外还有一个存储帐户,因为用户可以上传文件。

我目前正在使用流量管理器将用户重定向到最佳区域。但我对它不太满意......例如,它不支持会话亲和性。我可以为此使用应用程序网关,但这也不是我真正想要的,因为使用应用程序网关也可能发生在 Session1 中用户登陆 Region1 而在 Session2 中他登陆 Region2。用户将在 Region1 和 2 中上传文件,每次用户登陆不同的区域时,我都必须在区域之间传输它们。

因此,我想创建自己的流量管理器。我将创建一个带有网络服务器的云服务,它使用自定义的 arr 重写提供程序并根据用户的 geoip 重定向用户。

我唯一关心的是吞吐量......如果我正确理解反向代理,所有地区所有网站的所有流量都将通过这个代理。这些网站也有流式传输的可能性,我们大量使用 websockets 在客户端和服务器之间进行通信。

这种带有自定义 arr 的方法甚至可以扩展吗?如果所有流量都通过这一云服务?我相信我可以创建多个处理 arr 请求的网络服务器,但是例如延迟问题是什么?

例如,如果我的流量管理器云服务在北欧,然后来自巴西的用户。我们在巴西有一个区域,但是如果所有流量都通过北欧的代理,那么我猜延迟将是灾难性的,并且在巴西拥有一个区域的所有好处都将消失。

简而言之:我想根据用户的 geoip 将用户重定向到 azure 中的特定区域,并保持整个事情的可扩展性和尽可能高的性能:)。最好的方法是什么?

谢谢你的帮助!BR,代谢

4

1 回答 1

0

Azure 流量管理器在 DNS 级别工作。它使用来自您的 DNS 查询的 IP 数据来提供一个 DNS 响应,该响应将该用户的流量定向到您最近的 Azure 区域(如果使用“性能”流量路由方法)。然后,用户直接连接到该地区的服务。

优点是流量管理器因此不会遇到您描述的问题,因为它不是您的最终用户流量的代理。

缺点是由于流量管理器只看到 DNS 流量,而看不到 TCP/HTTP 流量,它无法提供会话亲和性。

解决此问题的最佳方法是使用流量管理器将流量定向到最近的服务端点,然后在应用程序级别(或在代理中,如您所做的那样)实现会话亲和性。

于 2015-11-23T10:21:02.680 回答