开发者社区> 问答> 正文

如何确认此应用是不是云原生的应用,是不是无状态的应用?

如何确认此应用是不是云原生的应用,是不是无状态的应用?

展开
收起
1358896759097293 2021-03-11 23:02:52 833 0
来自:云开发平台
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    确认此应用是不是云原生的应用,是不是无状态的应用。 怎么来保证它的无状态呢?那就要确认它的 Session 不会保存在单台主机上。通过代 码我们可以发现,比如常用的登陆态,登录态不能通过传统的单机模式把 Session 设置到 Web 容器的 Session 的属性里去,如果这样的话它其实是存在这台主机的服务端,这台主 机服务端就相当于有一个状态了。在 Serverless 上,主机随时会漂移或随时会扩容。这个时候如果用户登录到其它主机 上,它的登陆态就会丢失。所以迁移的前提是把应用有状态的特征变成无状态,怎么把它变 成无状态呢?有两种方式。第一种,把登录态信息存储到 cookie 上,让浏览器保存。 第二种,在大型应用场景,登录态把它存储到共享服务上。共享服务是指数据库或 Redis 缓存,一般是存在缓存里而不是存数据库里的。或者是专门启动一个保存用户登录 态的服务,设置一个专门的微服务管理,这是大型应用场景的做法。登录态里面可能就存储 在用户的一些权限信息、组织信息、一些状态、或是具体应用的信息,都可以存在这里。 一般轻量级的应用,都是通过存储到 cookie 上,cookie 在浏览器和服务端来回传, 它的登陆态就都保存起来了。这样用户每次访问时是无感的。

    2021-03-14 22:39:03
    赞同 展开评论 打赏
问答分类:
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
云原生加速数字创新的新质生产力 立即下载
为创新提速,打造智算时代的云原生应用平台 立即下载
云原生产业大会:阿里云精彩内容集锦 立即下载