✅啥是无状态,为啥说Serverless是无状态的?

典型回答

✅什么是Serverless?

在上一篇文章中,我们提到过『在Serverless的架构思想中,没有应用程序的概念了,应用程序被分解为无状态的函数。

啥叫无状态?为啥说Serverless是无状态的?

无状态

无状态在计算机领域中经常能听到,比如我们会说HTTP是无状态的、Serverless 是无状态的,啥叫无状态?

所谓无状态,就是说每次请求都是独立的,服务不会依赖之前的请求状态来处理当前请求。

Serverless架构是一种典型的无状态架构。在Serverless中,应用程序的业务逻辑被分解为小型函数,这些函数在需要时被动态调用,调用完就被销毁了。下次再调用的时候再重新启动被调用。每次调用之间都没有什么依赖,因为它们依赖的根本都不存在了。

但是,这个无状态并不是说数据干脆都不落库、不存储了,不是的,只是说这个服务本身无状态,但是数据是存储在单独的持久化存储中的,比如 mysql,还是有状态的。

如果你还是蒙,给你个最简单理解,本地缓存这玩意,在serverless 中是没有的,因为他要依赖 JVM 内存,而 JVM是每次都要重新启动的:

✅为什么云原生对应用的启动速度要求很高?

无状态的设计有几个优点:

  1. 易于水平扩展:由于每个请求都是独立处理的,无状态服务可以更容易地进行水平扩展,即通过增加服务器实例来增加处理能力,而不需要考虑状态同步的问题。

  2. 简化部署和管理:无状态服务通常更容易部署和管理,因为它们不需要复杂的状态管理机制,也不需要为每个请求维护连接状态或会话状态。

  3. 提高可靠性:无状态服务对于故障恢复和自动重试更有利,因为请求之间没有依赖关系或共享状态,一个请求的失败不会影响到其他请求。

原文: https://www.yuque.com/hollis666/xkm7k3/lg2w559sz9xwof7d