南昌seo-赣州九江网站建设-宜春吉安做网站推广公司
南昌seo动态
当前位置:首页 > 南昌seo动态

利用分布式缓存存放状态

发布时间:2019-04-13 作者: 来源:

在系统中存储会话数据时使用分布式缓存。适用于您需要存储会话数据但不将其存储在用户浏览器中的任何情况。注意常见错误,例如需要关联用户和Web服务器的会话管理系统。 TR TR 仔细考虑如何存储会话数据可确保系统继续扩展。许多Web服务器或语言提供了一种简单的基于服务器的会话管理方法,但这些方法通常存在问题,例如将用户与特定服务器相关联。通过实现分布式缓存,会话数据可以存储在系统中,从而允许系统继续扩展。 TR TR TR 在您断定需要在应用程序或系统中维护状态并且无法将状态置于最终用户的浏览器之前,我们希望您花时间认真考虑建议的过程。你应该为这个决定感到难过,并且感到惭愧的是你无法弄清楚如何开发无状态系统或让最终用户处于维护状态。 TR TR 当然,这是一个笑话,因为我们已经承认确实存在必须维持状态的系统,即使是非常小的数量,并且这些状态最好在服务,应用程序或生产的基础结构中维护。考虑到这一点,让我们讨论一下在应用程序中维护状态的一些原则。 TR TR 首先,远离需要与应用程序或Web服务器关联的有状态系统。此实现的可用性低于可以在任何服务器上远程访问状态的实现。如果关联的服务器死亡,则该服务器上的所有会话信息(包括状态)将无效,并且关联的客户(可能是数千个)将需要重复其操作。即使数据存储在本地或网络存储上,用户也需要在另一台服务器上重新开始,并且在此期间会出现服务中断。 TR TR 其次,请勿使用状态或会话复制服务,例如某些应用程序服务器或第三方群集服务器上的服务。如本章前面所述,此类系统无法很好地扩展,因为会话的更改需要传播到许多节点。因此,要选择这种类型的实现,我们需要注意扩展系统所需的内存量。 TRTR 第三,在选择会话或状态缓存或持久性时,在服务器上选择不执行实际处理的缓存。虽然这有点挑剔,但它确实有助于提高可用性,因为当您丢失服务器时,您只会丢失与其关联的缓存,或者您只丢失其运行的服务,而不会同时丢失两者。创建缓存(或持久性)层还允许我们基于缓存访问进行扩展,而无需依赖应用程序服务以及内部和远程缓存服务。 TR TR 如何处理分布式会话/状态缓存:
TR 下面列出了实现缓存管理会话或状态时要避免的三种方法。不要实现需要与服务器关联的系统。 TR TR 不要使用状态或会话复制在不同系统上创建重复数据。 TR   不要将缓存放在执行操作的系统上(这并不是说应该没有本地应用程序缓存,只是最好将会话信息放在自己的服务器层上)。 TR TR 如果您遵循不做任何事情的原则,那么选择您需要做的事情要容易得多。对于这些问题,我们正在寻找一种难以理解的态度。因此,我们更关注设计,而不是实现细节,例如应该使用哪个开源缓存或数据库解决方案。我们强烈认为您很少需要开发自己的缓存方案。有了这么多的分布式对象缓存选项,从memcached到开源或第三方数据库,必须实现自己的缓存方案来存储会话信息是荒谬的。 TR TR 这提出了一个问题,应该用什么来实现缓存?对我们来说,这个问题实际上是在可靠性,耐用性和成本之间进如果您想暂时保存会话或状态信息(例如购物车),您可能决定使用长期持久性解决方案来存储部分或全部会话信息。在我们看到的许多示例中,它是使用数据库实现的。但是,使用数据库显然会使每个事务的成本大于简单的解决方案,例如非持久性分布式对象缓存。 TRTR 如果您不需要持久性,则可以从众多对象缓存中进行选择。对象缓存及其用法的讨论。在某些情况下,您可以同时选择两者,即数据库的持久性和数据库前端缓存的低成本。这样的实现不仅具有数据库的持久性,而且还通过数据库前端的高速缓存实现了成本有效的事务处理扩展。 TR TR 有关分布式会话状态缓存的注意事项
TR 以下是实现分布式缓存的三种常用方法及其优缺点。 TR TR 单独使用数据库是最昂贵的,但所有数据都是持久的,并且在分布式环境中可以很好地处理更新和读取之间的冲突。 TR   非持久性分布式对象缓存更快,成本相对较低。但是,在故障发生后,数据无法恢复,这不适用于用户访问间隔较长的情况。 TR TR 一些是为网站构建的,数据库提供持久性。缓存提供了经济高效的可扩展性,适用于需要持久性和低成本的情况。 TR TR