400 050 6600
数据分析师

手机号

验证码

30天自动登录
当前位置:首页 - Q&A问答

Q&AQ&A问答

如何在会话存储中构建智能数据?

来源:CPDA数据分析师网 / 作者:数据君 / 时间:2020-09-03

什么是会话存储?

简而言之,会话存储是连接到服务用户的“大块”数据,与主数据库分开存储,目的是提供粘性,而无需直接,持续地访问数据库。在这种情况下,“用户”是宽松定义的。用户可能仅仅是一个简单的网页访问者,一个在电话应用程序中拥有帐户的用户,甚至是另一个通过API访问数据的服务,会话通常通过Cookie在请求之间保持不变。服务器向客户端提供cookie,然后由客户端存储它,然后将后续请求和该cookie发送回去,然后服务器使用cookie字符串作为令牌,可以将其与用户相关联的数据,通常会话数据是单个用户(也就是那个用户)常使用的会话数据,会话数据通常也是呈现页面或视图的关键要求,很多时候,会话数据都是短暂的,并在其他一些数据存储中重复。但是,正如我们不久将要探索的那样,这并不总是必须成立。

 

什么是智能会话存储?

在本文中,我们将探讨超越“哑”数据存储的会话存储。会话存储中的此智能数据可能是由服务的用户计算,推断或不直接提供的。这样,您可以将传统会话数据(用户名,项或其他常见状态数据)与智能数据一起存储。

 

我们将使用的智能数据的一些示例是:

1、组通知-向特定用户部分提供单个通知

2、内容显示数据-可以利用的数据集,可以使用户指向其他内容

3、活动数据-有关用户行为和服务使用情况的信息

4、个性化数据-可用于使服务与每个用户更加具体和相关的数据

 

为什么任何服务都需要会话存储?

在一个非常简单的世界中,不需要会话存储,在下面的非常简单的示例中,您将整个Internet连接到单个服务器,然后由单个数据库支持,在每个页面视图上,Web服务器都连接到数据库并获取必要的信息,这对于小型用例可能非常有用,但是当您的网站繁忙时,您可能会开始遇到数据库变慢的问题。毕竟,与Web服务器的职责相比,查询(或更糟糕的是,写入大多数数据库)是非常耗费资源的。为了解决这种情况,您可以更改网站代码以开始使用基于文件的会话存储。这是简单的会话存储策略-有效地,单个会话存储在Web服务器上的文本文件中。然后,Web服务器软件将直接读取或操作会话数据文件。

 

以轻松扩展以适应巨大流量而闻名,因此该连接允许用户,服务器和微服务实例的无限增长

这很有帮助,因为数据库的访问频率大大降低,因此速度更快,但是当您的网站增长得更多时,就会出现另一个问题。至此,您已经限制了对数据库的请求数量,但是对于所有文件I / O,除了Web服务器的正常职责外,Web服务器本身在您的压力下也开始紧张。热门网站。解决此难题的常见方法是添加更多的Web服务器和负载平衡器。负载平衡器将流量平均分配到所有Web服务器盒。

 

该解决方案在测试期间可能效果很好,但是实际用户可能会有所抱怨

让我们研究一下当具有存储其名称的会话的用户被定向到具有基于文件的会话存储的两个不同的Web服务器时会发生什么,当Web服务器阵列将会话数据存储在文件上并且负载平衡器仅分发到下一个Web服务器时,会话数据可以存储在文本文件中的其他服务器上。

 

我们有一个Web服务器,它将会话数据存储在Redis中,而不是服务器上的文本文件中

会话微服务还包括可以管理我们会话的智能会话数据的会话微服务,在此体系结构中,值得注意的是,Web服务器永远不会直接连接到微服务,并且所有内容都直接通过Redis数据库进行管理,以轻松扩展以适应巨大流量而闻名,因此这种连接允许用户,服务器和微服务实例的无限增长。此外具有广泛的高可用性功能,这对于任何体系结构的关键组件都是必不可少的。

 

为什么要使用微服务?

与构建复杂应用程序的整体方法相比,微服务具有一些众所周知的优势,借助微服务,您可以更轻松地扩展应用程序的容量,开发和可靠性,在这种情况下,“开发”是指实现应用程序需要涵盖的复杂功能群所需的开发人员/团队,开发人员可能很挑剔。一个团队可能想要使用与另一团队完全不同的一组工具,语言和方法。将这些团队合并在一起可能很难(或不可能)有效完成。另外,代码库越大,越难。

 

通过将会话存储视为微服务

您可以从Web服务层抽象出存储的复杂性,甚至可以使用完全不同的语言和工具,实际上您可以精确地测试会话存储是否具有适当的行为。,您可以独立于服务层的任何其他部分添加要素,对于容量,微服务使您可以根据需要分配更多基础结构,而不必扩展体系结构的其他部分。与单块方法相反,微服务允许基础结构的大小适合离散服务。通过我们的会话微服务示例,我们可以添加重要的额外功能,而不必担心稍后会扩展时变得很困难。反之亦然:如果架构的其他部分占用大量资源,那么我们可以使会话管理层保持精简。

 

微服务可以为我们的应用程序增加可靠性

本质上,构建微服务需要注意故障情况,实际上您甚至可以构建功能来允许微服务热重启,甚至允许特定微服务的完全故障,从而导致应用程序降级而不是硬故障。

 

从提交到计算数据

大多数会话存储区仅存储用户在某一时刻提交的数据:帐户详细信息,项,甚至购物车。这样,数据就相当简单-有效地,数据库仅保留一个值并将其提供给用户。但是,会话存储可以用于更复杂的数据。

  客服热线:400-050-6600

商业联合会数据分析专业委员会

 

 

 

Prev article

我们如何使大数据更容易信任?

Next article

如何解决Web规模应用程序的性能挑战?

数据分析师

报名咨询

数据分析师

报名缴费

数据分析师

客服中心

数据分析师

课程服务

数据分析师

认证服务