
Cache 可以提高页面加载速度,并可以减少服务器和数据库的负载。在这个模型中,Dispatcher 先查看请求之前是否被响应过,如果有则将之前的结果直接返回,来省去真正的处理。
数据库因分区(Partition)读写而获益,但是热数据会导致读写不均,造成瓶颈。如果在数据库前加个缓存,就会减轻不均匀的负载和突发流量对数据库的影响。

Cache 可以提高页面加载速度,并可以减少服务器和数据库的负载。在这个模型中,Dispatcher 先查看请求之前是否被响应过,如果有则将之前的结果直接返回,来省去真正的处理。
数据库因分区(Partition)读写而获益,但是热数据会导致读写不均,造成瓶颈。如果在数据库前加个缓存,就会减轻不均匀的负载和突发流量对数据库的影响。

异步工作流有助于减少那些原本顺序执行的请求时间。它们可以通过提前进行一些耗时的工作来帮助减少请求时间,比如定期汇总数据。
消息队列接收、保留和传递消息。如果按顺序执行操作太慢的话,你可以使用有以下工作流的消息队列:
不去阻塞用户操作,作业在后台处理。在此期间,客户端可能会进行一些处理使得任务看上去像是已经完成了。例如,如果要发送一条推文,推文可能会马上出现在你的时间线上,但是可能需要一些时间才能将你的推文推送到你的所有关注者那里去。
Redis 是一个令人满意的简单的消息代理,但是消息有可能会丢失。
RabbitMQ 很受欢迎但是要求你适应 AMQP 协议,并且管理你自己的节点。
Amazon SQS 是被托管的,但可能具有高延迟,并且消息可能会被传送两次。
像 SQL 这样的关系型数据库,是一系列以表的形式组织的数据项集合。
ACID 用来描述关系型数据库事务的特性:
关系型数据库的扩展,包括许多技术:主-从复制、主-主复制、联邦、分片、非规范化和 SQL 调优。
主库同时负责读取和写入操作,并复制写入到一个或多个从库中,从库只负责读操作。树状形式的从库再将写入复制到更多的从库中去。如果主库离线,系统可以以只读模式运行,直到某个从库被提升为主库或有新的主库出现:
Reverse Proxy 是一种可以集中调用内部服务,并提供统一公共接口的 Web 服务器。来自客户端的请求先被反向代理服务器转发到可响应请求的服务器,然后再把服务器的响应结果返回给客户端。

带来的好处包括:
X.509);Load Balancer 将传入的请求分发到应用服务器和数据库等计算资源。无论哪种情况,负载均衡器将来自计算资源的响应,返回给恰当的客户端。负载均衡器的效用在于:

负载均衡器可以通过硬件(昂贵)或 HAProxy 等软件来实现。 增加的好处包括:
X.509);cookie 并将特定客户端的请求,路由到同一实例。