跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 微服务中提倡的无状态服务,具体可行吗?
未分類
1 11 月 2020

微服务中提倡的无状态服务,具体可行吗?

微服务中提倡的无状态服务,具体可行吗?

資深大佬 : James369 4

在微服务和 REST 中,建议服务无状态化(服务器不保存状态,由客户端请求的时候自己带上来,达到请求的幂等性),这样有利于集群多机扩展。
这个想想感觉不可思议,server 不是都有 session 会话吗,难道 session 都不要了?
再比如电商应用的购物车,肯定得存在服务器中吧,具体是如何实施的
大佬有話說 (6)

  • 資深大佬 : miser

    该存 DB 存 DB,该缓存的缓存,该 redis 的 redis,session 本身就是一种内存数据,只是把这个数据从单独服务器一道了一个大的集群而已

  • 資深大佬 : lrvinye

    token,关键词 JWT,不过有时效性

  • 資深大佬 : opengps

    session 要集中共享到第三方,尽量避免每台机器存自己的用户会话状态,不然同一用户产生的连接过来之后,不一定实际是哪台后端机器承载,会出现丢失会话的问题

    集群设计的系统,一般都会有类似的要求。单独搞一个“会话状态服务”,比如存到 redis,存到数据库等等
    如果实在是没设计成无状态,那就只能靠负载均衡的“改写 cookie”这种方案来实现多台机器组成集群了

  • 資深大佬 : acmore

    无状态不是服务器真的不保存状态,而是客户端可以通过凭证在无感知的情况下从任何一台机器请求都能得到一样的结果。Session 不大的话每次直接带在 Request Body 中也未尝不可,我就见过很多服务把一堆状态数据塞在 Jwt 的 Claims 中来回倒腾的。Session 大的话就放在 Redis 集群,随用随拿。

  • 資深大佬 : xuanbg

    对的,不要了。请求头带一个 token 就完了。

    不过,这个和 session 并没有什么本质区别。只不过分布式系统都交给一个统一的验证服务去做用户身份和权限的验证罢了。

  • 資深大佬 : xuanbg

    @acmore 把一堆状态数据塞在 Jwt 的 Claims 中来回倒腾的,说明 jwt 实际上已经不适合这种场景了。jwt 的应用场景其实并不大,而且只适合比较小型的系统。一个大型的系统,用户能有上千个权限,这些权限数据直接发放给客户端简直就是灾难。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具