什么是有状态服务,无状态服务, 中心化服务,去中心化服务

什么是有状态服务, 无状态服务

有状态服务 :

服务端每次都记录与之会话的客户端信息 , 从而识别客户端身份 , 根据用户身份进行请求的处理 ,比如Tomcat中的session. (MySQL也是有状态服务)

登录: 用户登录后 , client 的信息保存在server 的session中 , 给用户一个cookie值 ,记录对应的session , client 再次请求时 ,自身携带cookie ,我们就能识别对应的session 从而识别用户的身份.

有状态(stateful)的缺点

  • server 自身消耗较多的存储资源 , 存储大连session
  • 服务端保存着用户的状态 , 无法做到水平扩展
  • 客户端请求依赖服务器 , 多次请求 必须依赖同一台服务器

无状态服务:

客户端每次想服务端发起请求 , 自己需要携带自描述信息 , 服务端通过这些信息识别 用户身份

无状态(stateless)的好处 :

  • 客户端请求不依赖服务端的信息 任务多次请求 ,不需要访问同一台服务器
  • 服务端的集群和状态对客户端透明 , 服务端可以任意地迁移和伸缩 , 减小服务器存储压力

两个来自相同的发起者的请求,在服务端是否有上下文关系 , 有则为有状态服务 ,无则为无状态服务

对于有状态服务,在做高可用的第一步,应该考虑如何做到共享存储

中心化服务与去中心化服务

keso对中心化和去中心化的解释

中心化(Centralization)和去中心化(Decentralization)就是集权与分权,在互联网上,就是指从我说你听的广播模式,向人人有个小喇叭的广场模式转变。中心化的典型例子是门户网站,去中心化的典型例子是 blog、UGC、社交媒体等。很多人对去中心化有一些误解,比如说 Facebook、Twitter 等正在成为更集中的中心。去中心化不是说今后不再有大网站,也不是说大网站就一定是中心化的,去中心化主要是指技术对普通用户的赋权。另外,去中心化也不是人人绝对平等的意思,总会有人更善于利用技术赋予的可能性,有人则不善用或不在乎

目前多数为中心化服务(kubernetes依然为中心化服务), 去中心化服务较少 (如元宇宙 , 区块链)

上一篇:React 绑定事件监听函数


下一篇:【笔记】JavaWeb-03-Session&Cookie