我正在阅读有关应用的scalability
和performance
的信息,并且遇到了一条说明
“从应用程序中删除状态有显着增加 在数据库中加载“
我无法理解这一行,原因如下:
www
[或休息]并向{@ 1}}的网络服务器发送请求。stateless
请求?增加数据库负载的无状态请求有什么问题?
答案 0 :(得分:1)
好吧,我不知道引用内容的上下文。您可以删除(或最小化)应用程序的状态,但不是在所有情况下。首先,在这些情况下你可以做的是将状态移动到数据库(或像redis这样的企业缓存) - 只是以某种方式持久化状态对象。因此,每个请求从DB获取的数据多于节点包含数据的情况。
我们尝试在当前项目上以毫秒为单位的响应时间。删除状态意味着加载大型DDD'聚合,这会使每个请求的请求减慢一秒,并带来额外的数据库负载 - 这是引用句子的结果。
答案 1 :(得分:0)
我不认为你引用的陈述是真的。
这种约束导致了可见性,可靠性和性能的特性 可扩展性。由于监控系统可见,因此可见性得到改善 不必超越单个请求数据来确定 请求的完整性。可靠性因为它而得到改善 减轻从部分失败中恢复的任务[133]。可扩展性 因为不必在请求允许之间存储状态而得到改进 服务器组件可以快速释放资源,并进一步简化 实现,因为服务器不必管理资源 跨请求使用。
根据Fielding dissertation,从通信中删除状态会增加可伸缩性,因此有必要定义REST的分层系统约束,从而进一步提高可伸缩性。为了说清楚:您可以在系统中的任何位置添加缓存,相反,db负载会减少。