在这篇文章中,我们深入解释了无状态和有状态架构的概念。关于无状态架构和有状态架构哪个更好,似乎有一场激烈的辩论。此外,对于这些术语的正确定义也存在各种误解,尤其是在客户端和服务器系统中。
内容表。
-
引言。陈述简要的历史
-
无状态架构
3.无状态应用的优点
4
.
无状态应用的劣势
5.无状态应用架构的例子 -
有状态架构
7.有状态应用程序的优点
8
.
有状态应用的缺点
9
.
无状态应用的例子
引言。陈述简要的历史
从历史上看,由于互联网和网络应用很简单,所以无状态的应用占主导地位。然而,随着网站需要变得更加动态,处理用户信息和行动,有状态的架构和应用在一段时间内抢占了战利品,之后由于需要可扩展的网络应用,无状态又变得时髦和酷。有状态的统治了一段时间,这可能是一些人的强硬立场背后的原因,他们认为有状态的永远是最好的,而忽略了各种系统设计的考虑。
无状态架构
无状态应用程序不了解过去,并将事务、请求、处理和操作视为独立于以前的。无状态的一些特点包括。
- 通常不存储会话中产生的任何客户数据
- 操作是从头开始的
- 不使用状态来处理任何请求
- 相同的请求产生相同的响应
- 请求是自包含的
- 涉及到微服务和通过消息传递等进行的通信
- 通常涉及单一服务或功能
无状态应用的优势
无状态应用程序的优点是。
- 易于实现
- 自包含,增加可见性
- 能更好地处理崩溃问题
- 更容易横向扩展
- 允许隔离,减少风险 总的故障转移
- 易于与广泛使用的无状态协议HTTP结合起来
无状态应用程序的缺点
无状态应用程序的缺点是。
- 不能存储用户信息,必须依赖低效的cookies
- 往往被限制在可以做的范围内。
无状态应用程序架构的例子
无状态应用架构的例子包括。
- 内容交付网络(CDN)
- 打印、无服务器功能
- HTTP、容器、离线应用
- 功能性编程、令牌、REST
有状态的架构
有状态的应用程序保留状态,需要记住过去,并将其应用于当前的响应、交易、处理或操作。有状态的一些特点包括。
- 将数据、状态存储在存储器中,如MySQL、MongoDB等数据库。
- 操作不是从头开始的
- 使用状态,当前的事务受到过去的影响
- 同一请求可能会产生不同的响应,这取决于状态和背景
- 请求不是自包含的
- 涉及到许多调用、流程、步骤,一个接一个。
- 对过去的了解使它们可以保留到以前的状态
有状态应用程序的优点
有状态的应用程序的优点是。
- 可以做更复杂的事情,例如设计购物车。
有状态应用程序的缺点
有状态应用程序的缺点是。
- 实现起来更复杂
- 更难分析,因为它们不是自带的
- 不能很好地处理崩溃问题
- 有较高的全面故障切换风险
- 难以横向扩展
- 由于依赖性,用户体验可能很差
- 存储成本和复杂程度
无状态应用程序的例子
无状态应用的例子是。
- FTP、Cookies、会话
- AJAX
- 存储、数据库、用户会话
- 有状态的容器
通过OpenGenus的这篇文章,你一定对系统设计中的无状态和有状态架构有了深刻的认识。请欣赏。