制作需要扩展的网站的内容是什么?

sam*_*moz 23 scalability web-applications

我打算构建一个可以获得大量流量的应用程序.(请不要说我不会获得流量,这是针对内部网络的,所以流量会在那里.只是试图避免'你不会得到那么多的流量,不要担心它.)

至于我期望的流量类型,用户将浏览各种动态创建的(基于用户帐户详细信息).在这些网站上,用户可以提交文本输入.加载页面和处理用户输入都将命中数据库.加载显然是读取,但处理输入将需要读取和写入.输入也可能影响其他用户的视图.如果发生这种情况,我将需要通知其他用户刷新页面.

我需要做什么样的事情才能在大量用户的负载下崩溃?

什么成为限制因素?数据库东西?前端的I/O?

我以前从来没有真正开发过一个严肃的网络应用程序,我正在寻求一些帮助.

编辑:我正在考虑使用Erlang作为后端,因为我已经使用了一点点,并且非常喜欢所有并发的东西.这是一个可行的选择还是我应该尝试更传统的东西?

wom*_*omp 17

这是一个非常大的话题,您可能希望尽可能多地进行研究.有几个重要的主题需要考虑.

  1. 会话状态存储.显然,会话存储占用内存或磁盘空间.您需要有一个策略来正确地存储会话信息,并且可以由Web场使用.

  2. 缓存.强大的缓存策略可以显着降低负载.关于何时,何地以及应该缓存的地方,做了大量的研究.

  3. 可伸缩性和负载测试.额外的想法必须进入每个资源获取操作,以确保它根据需要完成几次.如果您使用好的工具,负载测试和代码分析可以帮助识别瓶颈.

  4. 数据库优化.确保您了解如何针对每分钟数千(数百万?)的操作正确优化数据库.如果您的应用程序是大量写入的,您可能需要查看仓库中不再需要包含在索引中的旧数据,以加快您的写入操作.

  5. 升级路径.您的流量会随着时间推移而增加吗?一定要了解如何在需要时为应用程序插入更多服务器和内存,以及需要什么.

你可以投资的书很多,可能会带来丰厚的回报.在亚马逊或章节中搜索"构建可扩展的Web应用程序",您可能会发现许多文本,包括技术特定和不可知.