我在多个区域的Azure中有一个网站。除了网络服务器之外,每个区域还有一个存储帐户,因为用户可以上传文件。
我目前正在使用Traffic Manager将用户重定向到最佳区域。但我对此并不满意......例如,它不支持会话亲和性。 我可以使用Application Gateway,但这也不是我想要的,因为在应用程序网关中,也可能发生在Session1中用户登陆Region1而在Session2中他登陆Region2。用户将上传Region1和2中的文件,每次用户登陆不同的区域时,我都必须在区域之间传输文件。
因此我想创建自己的流量管理器。我会创建一个带有Web服务器的cloudservice,它使用自定义的arr重写提供程序,并根据他的geoip重定向用户。
我唯一关心的是吞吐量...如果我正确了解反向代理,所有地区所有网站的流量都将通过此代理。 这些网站也有流媒体可能性,我们大量使用websockets进行客户端和服务器之间的通信。
这种方法与自定义arr是否可扩展?如果所有流量都通过这一个云服务?我相信我可以创建多个处理arr请求的Web服务器,但是例如延迟问题是什么?
如果我的交通管理员云服务是在北欧,然后是来自巴西的用户。 我们在巴西有一个地区,但如果所有的交通都通过北方航空的代理,那么我认为延迟将是灾难性的,并且在巴西拥有一个地区的所有好处都将消失。
简而言之:我想基于他们的geoip将用户重定向到azure中的特定区域,并保持整个事物的可扩展性和尽可能高的性能:)。 对此最好的方法是什么?
感谢您的帮助! BR, 代谢
答案 0 :(得分:0)
Azure Traffic Manager在DNS级别工作。它使用DNS查询中的IP数据提供DNS响应,将该用户的流量定向到最近的Azure区域(如果使用“性能”流量路由方法)。然后,用户直接连接到该区域的服务。
优点是流量管理器不会遇到您描述的问题,因为它不是您最终用户流量的代理。
缺点是,由于Traffic Manager只能看到DNS流量,而不是TCP / HTTP流量,因此无法提供会话关联。
解决此问题的最佳方法是使用流量管理器将流量定向到最近的服务端点,然后在应用程序级别(或在代理中,如您所做)实现会话关联。