问题标签 [high-load]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 在高负载站点中使用 PHP 的策略
在你回答这个问题之前,我从来没有开发出足够流行的东西来获得高服务器负载。把我当作(叹息)一个刚刚降落在地球上的外星人,尽管我知道 PHP 和一些优化技术。
我正在用PHP开发一个工具,如果效果好的话,它可以吸引很多用户。然而,虽然我完全有能力开发程序,但在制作可以处理巨大流量的东西时,我几乎一无所知。所以这里有几个问题(也可以随意把这个问题变成一个资源线程)。
数据库
目前我计划在 PHP5 中使用 MySQLi 功能。但是,我应该如何设置与用户和内容相关的数据库?我真的需要多个数据库吗?目前,一切都混杂在一个数据库中——尽管我一直在考虑将用户数据传播到一个数据库,将实际内容传播到另一个数据库,最后将核心站点内容(模板母版等)传播到另一个数据库。我的理由是,将查询发送到不同的数据库将减轻它们的负载,因为一个数据库 = 3 个负载源。如果它们都在同一台服务器上,这仍然有效吗?
缓存
我有一个模板系统,用于构建页面和换出变量。主模板存储在数据库中,每次调用模板时都会调用它的缓存副本(html 文档)。目前我在这些模板中有两种类型的变量——静态变量和动态变量。静态变量通常是诸如页面名称、站点名称之类的东西——这些东西不会经常改变;动态变量是在每次页面加载时发生变化的东西。
我对此的问题:
假设我对不同的文章有评论。哪个是更好的解决方案:每次加载页面时存储简单的评论模板并呈现评论(来自数据库调用)或将评论页面的缓存副本存储为 html 页面 - 每次添加/编辑/删除评论页面被重新缓存。
最后
有没有人有任何关于在 PHP 上运行高负载站点的提示/指针。我很确定这是一种可行的语言——Facebook 和 Yahoo! 给予它很大的优先权 - 但有什么我应该注意的经验吗?
c# - 高流量 Web 服务的提示,c# asp.net sql2000
我正在开发一个 Web 服务,其方法将从“动态横幅”中调用,该横幅将显示从 sql server 表中读取的一种消息队列。
大流量网站首页的banner压力会比较大;每次加载横幅时,它都会调用我的 Web 服务,以获取新的消息队列。
现在:我不希望每次加载横幅时所有这些流量都会驱动对数据库的查询,所以我正在考虑使用 asp.net 缓存(即 HttpRuntime.Cache[cacheKey])来限制数据库访问;我将尝试每分钟左右刷新一次缓存。
显然,我会尽量减少消息,以限制流量。
但也许还有其他方法可以处理这种情况;例如,我可以在文件系统上编写队列的最后一个版本,并让 Web 服务访问该文件;或者混合这两种方法的东西......
解决方案是c# web service,asp.net 3.5,sql server 2000。
有什么提示吗?其他方法?
谢谢
安德烈亚
php - 对于高流量 ajax 密集型网站,您有什么建议?
对于像 reddit 这样的网站,每个主题都有很多赞成/反对票和很多评论,我应该怎么做?
Lighttpd/Php 还是 Lighttpd/CherryPy/Genshi/SQLAlchemy?
对于数据库,什么会更好/最快的 MySQL(4.1 或 5?)或 PostgreSQL?
high-load - 具有 5 GB/天传输量的 Web 应用程序的设计注意事项?
我必须构建一个类似于“分支/商店定位器”的 Web 应用程序。用户输入他的地址,Web 应用程序将在地图上绘制附近的商店。
要求之一是:
“Web 应用程序必须支持 100 个并发用户和高达 5GB/天的传输量。”
大部分传输的数据将是文本和 GUI 图像。
所以我的问题是:
- 这是否被视为高流量应用程序?
- 我可以寻找哪些 Web 应用程序/站点来获得可比较的流量?
- 我是否需要实现诸如 memcached、模板缓存、负载服务器平衡等之类的东西......?
我以前做过高流量应用程序,但我从来都不是架构师。因此,尽管我知道一些(不是全部)管理高流量场景的策略,但我并不熟悉它们的实际实施。
有人可以给我建议、反馈或建议的研究吗?我有没有忽略什么?
**另外,我正在使用带有 Smarty 的 LAMP 构建它。
.net - 每秒能够处理 40,000 条消息的系统的模式和技术
我们需要构建一个每秒能够处理 40,000 条消息的系统。在任何软件或硬件故障的情况下都不会丢失任何消息。
每条消息大小约为 2-4Kb。
消息的处理包括验证消息、进行一些简单的算术计算、将结果保存到数据库以及(有时)向其他系统发送通知。
优选的软件技术是.Net。
哪些软件和硬件模式最适合此类任务?
它需要多少硬件?
c# - 使用 WPF 在可滚动区域中创建数千个控件的最佳方法是什么
我正在使用 WPF 和 C#。
我有个问题。我需要在可滚动区域中创建很多可绑定的模板化控件(它们都是不同的类型)。例如 1000 个文本框、1000 个下拉列表和 1000 个复选框。
问题是,当它们都被创建时,它的工作速度非常慢。
问题是 - 是否有可能同时拥有如此多的控件而没有滞后,我应该朝哪个方向寻找解决方案?我想保存使用模板、数据绑定和简单事件处理(如鼠标单击)的能力。
PS我尝试了很多东西(仅渲染几何体,不同的基类等等),但目前似乎对我有用的唯一方法(我还没有尝试过)是只创建那些适合当前视口的控件并更新此滚动控件列表。
PPS 我知道 3.5 SP1 中有一种机制在 ListBox 中使用,当列表项在滚动期间被重用但这种方法不能在这里使用,因为所有这些项目都是不同的类型。
非常感谢。
mysql - MySQL中处理高负载表的常用做法
我在 MySQL 5 (InnoDB) 中有一个表,用作守护进程处理队列,因此它经常被访问。通常每天插入大约 250 000 条记录。当我选择要处理的记录时,使用 FOR UPDATE 查询读取它们以消除竞争条件(一切都是基于事务的)。
现在我正在开发一个“队列存档”,我偶然发现了一个严重的死锁问题。我需要在处理(实时)表时从表中删除“已执行”记录,但是如果我这样做(每天两到三次),表每隔一段时间就会死锁一次。
我虽然倾向于延迟删除(在低负载时间每天一次),但这并不能消除问题,只会让它变得不那么明显。
在 MySQL 中处理高负载表是否有通用做法?
sql-server - 在 Linq to SQL 中,是一次返回多个结果集还是使用多个存储过程调用数据库更好?
我正在创建一个非常数据密集型、大容量的网站。网站的每个方面都是由与我正在使用的 MSSQL DB 的交互驱动的。在一页上,我需要在我的页面中使用 10-12 个不同的结果集。因此,在将 Linq-to-SQL 和多个结果集与 Web 应用程序一起使用时,我需要了解最佳实践。
我应该让它返回多个结果集,创建将接收数据并以这种方式使用它的类,还是只调用 10-12 存储过程并将数据返回到先前生成的 LINQ To SQL 数据类?
谢谢大家的帮助!我很感激!
php - digg(或其他高负载类别的网站)如何存储用户会话?
digg 或任何其他高流量网站如何存储用户会话?他们用什么来存储用户会话?文件系统、数据库(哪一个?)、内存缓存或两者兼而有之?
让我们想象一个简单的情况。登录用户在登录期间设置了“记住我”标志。我们设置了一个有效期为 1 年的会话 cookie。例如,我们在 memcache 中保存会话,但我们也应该在数据库中保存这个会话的记录(在我的版本中)。只有带有“记住我”标志的用户才会存储在数据库中。这是存储会话的正确方法吗?当然,我指的是高流量网站(具有 2 个或更多应用程序服务器、2 个或更多数据库、memecache 服务器等)。在小型网站中,默认方式(在文件系统中)存储会话是可以的。
我试图搜索谷歌,但未能找到任何有关它的信息。我从“高级 PHP 编程”一书中阅读了一些解决方案,但主要强调的是自定义会话存储处理程序。
真的希望听到好的想法或链接!
谢谢你。