确认此应用是不是云原生的应用,是不是无状态的应用。 怎么来保证它的无状态呢?那就要确认它的 Session 不会保存在单台主机上。通过代 码我们可以发现,比如常用的登陆态,登录态不能通过传统的单机模式把 Session 设置到 Web 容器的 Session 的属性里去,如果这样的话它其实是存在这台主机的服务端,这台主 机服务端就相当于有一个状态了。在 Serverless 上,主机随时会漂移或随时会扩容。这个时候如果用户登录到其它主机 上,它的登陆态就会丢失。所以迁移的前提是把应用有状态的特征变成无状态,怎么把它变 成无状态呢?有两种方式。第一种,把登录态信息存储到 cookie 上,让浏览器保存。 第二种,在大型应用场景,登录态把它存储到共享服务上。共享服务是指数据库或 Redis 缓存,一般是存在缓存里而不是存数据库里的。或者是专门启动一个保存用户登录 态的服务,设置一个专门的微服务管理,这是大型应用场景的做法。登录态里面可能就存储 在用户的一些权限信息、组织信息、一些状态、或是具体应用的信息,都可以存在这里。 一般轻量级的应用,都是通过存储到 cookie 上,cookie 在浏览器和服务端来回传, 它的登陆态就都保存起来了。这样用户每次访问时是无感的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。