Database 无状态负载平衡应用程序导致数据库瓶颈

Database 无状态负载平衡应用程序导致数据库瓶颈,database,rest,load-balancing,stateless,Database,Rest,Load Balancing,Stateless,我在阅读有关应用程序的可伸缩性和性能的文章时,遇到了这样一行内容: “从应用程序中删除状态会显著增加 因此,在数据库中加载“ 我无法理解这句话,原因如下: 假设我正在使用www[或rest],并向无状态的web服务器发送请求 如果我的请求需要一个DB操作,那么它不等于任何有状态的请求吗 无状态请求增加数据库负载有什么问题?我不知道引用内容的上下文。您可以删除(或最小化)应用程序的状态,但不是在所有情况下都可以。在这些情况下,首先可以将状态移动到数据库(或像redis这样的企业缓存)——以某种方式

我在阅读有关应用程序的
可伸缩性
性能
的文章时,遇到了这样一行内容:

“从应用程序中删除状态会显著增加 因此,在数据库中加载“

我无法理解这句话,原因如下:

  • 假设我正在使用
    www
    [或rest],并向
    无状态的web服务器发送请求
  • 如果我的请求需要一个DB操作,那么它不等于任何有状态的请求吗

  • 无状态请求增加数据库负载有什么问题?

    我不知道引用内容的上下文。您可以删除(或最小化)应用程序的状态,但不是在所有情况下都可以。在这些情况下,首先可以将状态移动到数据库(或像redis这样的企业缓存)——以某种方式持久化状态对象。因此,与节点包含数据的情况相比,每个请求从数据库中获取的数据更多


    我们尝试在我当前的项目上以毫秒为单位设置响应时间。删除状态意味着加载大型DDD聚合,这会使每个请求的一个请求速度降低几秒,并带来额外的数据库负载-这是引用语句的结果。

    好吧,我不知道引用内容的上下文。您可以删除(或最小化)应用程序的状态,但不是在所有情况下都可以。在这些情况下,首先可以将状态移动到数据库(或像redis这样的企业缓存)——以某种方式持久化状态对象。因此,与节点包含数据的情况相比,每个请求从数据库中获取的数据更多


    我们尝试在我当前的项目上以毫秒为单位设置响应时间。删除状态意味着加载大型DDD聚合,这会使每个请求的一个请求的速度降低几秒,并带来额外的数据库负载—这是引用语句的结果。

    我认为您引用的语句不正确

    此约束会导致可见性、可靠性和可用性的属性 可伸缩性。可视性得到了改善,因为监控系统 不必查看单个请求数据以外的内容来确定 请求的全部性质。可靠性得到了提高,因为 简化了从部分故障中恢复的任务[133]。可伸缩性 改进了,因为不必在请求之间存储状态允许 服务器组件可以快速释放资源,并进一步简化 实现,因为服务器不必管理资源 跨请求使用


    根据协议,从通信中移除状态增加了可伸缩性,并且有必要定义REST的分层系统约束,这进一步增加了可伸缩性。明确地说:您可以在系统中的任何位置添加缓存,因此相反,数据库负载将减少。

    我不认为您引用的说法是正确的

    此约束会导致可见性、可靠性和可用性的属性 可伸缩性。可视性得到了改善,因为监控系统 不必查看单个请求数据以外的内容来确定 请求的全部性质。可靠性得到了提高,因为 简化了从部分故障中恢复的任务[133]。可伸缩性 改进了,因为不必在请求之间存储状态允许 服务器组件可以快速释放资源,并进一步简化 实现,因为服务器不必管理资源 跨请求使用


    根据协议,从通信中移除状态增加了可伸缩性,并且有必要定义REST的分层系统约束,这进一步增加了可伸缩性。明确地说:您可以在系统中的任何位置添加缓存,因此相反,数据库负载将减少。

    当我遇到这一行时,我正在阅读有关oracle coherence的文章。你的观点很有道理。当我看到这一行时,我正在阅读有关oracle coherence的文章。你的观点有道理。