有状态和无状态
要判断一个应用为有状态或无状态,取决于交互状态的记录时长以及该信息所需的存储方式。
无状态应用只提供一项服务或功能,并使用内容交付网络(CDN)、Web 或打印服务器来处理这些短期请求。
无状态:我们不妨将无状态事务看作一台自动售货机:一个请求对应一个响应。例如:在线搜索
有状态:应用和流程则是可以周而复始、反复发生的应用和流程,例如网上银行或电子邮件。这些操作是在先前的事务背景下执行的,当前事务可能会受到先前事务的影响。正因如此,有状态应用在每次处理用户的请求时都会使用相同的服务器。
最初,容器被构建为无状态,因为这比较符合其便携、灵活的特性。但随着容器的广泛使用,人们开始对现有的有状态应用进行容器化处理(重新设计和重新封装,以实现从容器运行)。这在为他们赋予容器的灵活性和速度的同时,也提供了有状态应用的存储和上下文。
究竟是使用有状态还是无状态容器,要取决于您要构建哪种类型的应用以及您的用途。如果您只是临时需要信息(快速而短暂),无状态便是解决之道。但如果您的应用需要更多内存来存储从一个会话到下一个会话的操作,则应该采用有状态方式。