状态是系统保留的、以某种方式影响其功能的信息。例如,网站可能跟踪已登录的用户。文档编辑器记住当前文本。后台工作进程记录已完成和待处理的任务。数据库根据需要存储写入的记录。任何有用的软件通常都需要管理状态以实现其预期功能。
困难在于即使在请求重叠、服务器增加、机器故障和软件变更部署的情况下,也要保持状态正确。通常,常见的建议是“使应用程序无状态”。但这个建议需要解释。它通常意味着使特定的应用服务器易于替换,同时将其重要状态放在其他地方。这并不意味着完全消除状态。
理解这样的设置需要审视状态存在的原因、谁拥有它以及当它不可用时会发生什么。在本文中,我们将探讨为什么状态是软件开发中最难的事情,以及开发人员可以用来管理它的多种策略。
来源: ByteByteGo · 由HeadlinesBriefing整理摘要