用于websocket应用程序的更好的AWS自动扩展和负载平衡策略

时间:2015-06-16 04:53:29

标签: amazon-web-services websocket amazon load-balancing autoscaling

我们正在构建在亚马逊中运行的可扩展websocket云服务。我正在寻找更好的自动扩展和负载平衡策略,以便与我们的websocket API实例一起使用。

目前我们的自动调节策略仅基于CPU使用率,例如&#34;当平均CPU&gt; 80% - 当CPU <1时,启动更多实例。 30% - 冷却&#34;,但我觉得它还不够。由于websocket连接是长寿命的,因此增加容量显然不会帮助已经过载的当前实例。理想情况下,我希望有一些像?&#34;平均TCP连接数&#34;除了CPU使用自动缩放外,还有将重载实例的连接转移到新实例的能力。通过&#34;传输连接&#34;我并不意味着保留任何状态,只是简单地将一些状态丢弃到重载的实例中,并允许客户端为新实例建立新的实例,即在所有节点上均匀地分配连接。

任何人都可以分享经验或建议一些关于在AWS中运行可扩展的websocket应用程序的最佳实践的好读物吗?

2 个答案:

答案 0 :(得分:-1)

就连接共享而言,我建议您阅读best practices doc的第9页。希望有所帮助。

答案 1 :(得分:-2)

如果没有收集更多信息,任何人都不容易回答。 基本上你要问的是,云中规模设计的基础。

您的问题的答案是,收集更多数据。

我知道这可能会让你烦恼,这不仅仅是一个答案,但我保证你会得到最好的答案。 您的解决方案的有效性将取决于您收集更多数据的能力。 但是嘿!关于这个行业最好的事情是,所有的确切数据都在那里,如果你花时间没有猜测工作。

回去收集:

  • 有关使用何种工作负载的信息,只需批量处理 喜欢加工?或许多GETS或一般数据流? 读/写?
  • 什么是用户行为?
  • 从数据的角度来看,典型用户的样子是什么,给我们画画 一张照片。
  • 您的应用程序中最常使用的用例是什么?
  • 取决于您的网络服务层,收集所有httpd日志
  • 将此与cloudwatch / aws日志记录联系在一起
    • 合并所有基础架构日志,应用程序,系统,事件日志
    • 寻找模式,模式识别是我们最擅长的,确定足够的模式,您将开发出更好的系统。