首页 > 其他分享 >SAP Spartacus 和 Sticky session 相关的话题

SAP Spartacus 和 Sticky session 相关的话题

时间:2023-06-22 10:11:28浏览次数:38  
标签:负载 Spartacus 请求 Sticky 会话 session 服务器 客户端

当 Commerce 后端运行多个Pods/节点时,当连续的请求过快到达时,后端将无法在集群中发送缓存失效通知。此外,如果多个请求分散到多个节点上,会产生延迟和不必要的资源消耗。

Spartacus 尽可能与单个后端进行交互,以服务于单个客户端。这通常被称为 sticky session.

Sticky session(粘滞会话)是一种负载均衡策略,用于在多个服务器之间分配客户端请求。在具有多个Java应用服务器的集群中,负载均衡器将客户端请求分发到不同的服务器上,以实现性能优化和高可用性。然而,这可能会导致一个问题:当一个客户端需要与特定服务器上的会话(例如,一个购物车或登录会话)进行交互时,由于负载均衡器将请求分发给不同的服务器,会话数据可能不会保持一致。

为了解决这个问题,引入了粘滞会话(sticky session)策略。粘滞会话策略确保同一个客户端的所有请求都会被分配到之前处理其请求的同一个服务器。这通常是通过将客户端的会话标识符(例如,JSESSIONID)与特定服务器关联来实现的。负载均衡器在将请求分发到服务器之前,会检查请求中的会话标识符,并将请求路由到与该标识符关联的服务器。

粘滞会话确保了会话数据的一致性,但可能导致服务器负载不均衡。如果一个服务器上的用户会话特别活跃,那么这个服务器的负载可能会变得很高,而其他服务器则相对较低。因此,在选择粘滞会话策略时,需要权衡会话数据一致性和负载均衡的需求。

CCv2在一定程度上为此做了准备。它在响应中添加了一个 ROUTE cookie. 然而,该cookie无法进行配置,并且没有SameSite策略。这意味着解耦的前端商店很可能无法使用它,因为它是在不同的域上操作。

为了启用 ROUTE cookie,必须执行以下操作:

  • 在http客户端中使用withCredentials: true选项,以便在每个请求中发送cookie。
  • 使用额外的CORS过滤器(Allow-Origin-With-Credentials:true)配置 Commerce backend,以确保cookie通过过滤器。

标签:负载,Spartacus,请求,Sticky,会话,session,服务器,客户端
From: https://www.cnblogs.com/sap-jerry/p/17497529.html

相关文章

  • 关于 Spartacus 服务器端渲染的 404 Not found 页面处理
    当启动Spartacus时,路由由Router逻辑处理。将评估四种不同类型的路由:路由应由自定义路由路径处理;客户添加了硬编码路由,并且我们应该优先考虑这些路由。路由是PLP(产品列表页)或PDP(产品详情页)。路由是CMS(内容管理系统)内容页面。路由是未知的(404页面未找到)。当向Sparta......
  • SAP Spartacus UI 中的 CmsTicketInterceptor
    在SpartacusUI发起的OCCAPI请求的URL中,您可能会注意到一个名为cmsTicketId的字段。这个字段的含义与用途如下:cmsTicketId是一个标识符,用于关联SpartacusUI与SAPCommerceCloud后端CMS(ContentManagementSystem)的会话。CMS是一个用于管理网站内容的系统,如......
  • VirtualBox启动报错 E_FAIL (0x80004005) SessionMachine
    问题描述:每次卸载重装virtualbox后的第一次启动是成功的,之后就又报错。0x80004005报错解决方案:1、可以尝试使用“管理员身份”运行virtualbox,再打开虚拟机。2、可以尝试先“导出虚拟机”,然后再“导入虚拟机”。问题原因分析:可能是安装镜像系统时的virtualbox版本和后来新装......
  • Spartacus 项目中 scss 文件里的 mergeAll 函数
    在SCSS文件中,并没有内置的mergeAll()函数。mergeAll()函数是一个JavaScript/TypeScript中的数组操作方法,用于将多个数组合并为一个数组。它不是SCSS或Sass的特定功能。然而,SCSS和Sass提供了一些强大的功能来处理样式和样式表。这些功能包括嵌套规则、变量、混合......
  • SAP Spartacus 开源项目中 $skipComponentStyles 的作用介绍
    SAPSpartacus和Angular开发的前端应用中的$skipComponentStyles是用于跳过组件样式加载的一个标志。在理解$skipComponentStyles的作用之前,我们先来了解一下SAPSpartacus。SAPSpartacus是一个开源的电子商务前端框架,用于构建可扩展、可定制的电子商务网站。它基于An......
  • v$session 会话相关SQL
    v$session常用字段如下SIDSERIAL#SPIDSQL_IDSTATUSROW_WAIT_OBJ#BLOCKING_SESSION_STATUS由上图可以看到持锁的sid为80,Blockingsessionstatus:*VALID状态valid为正在等待*NOHOLDER*GLOBAL*NOTINWAIT*UNKNOWN查看当前用户的sid和serial#selectsid,serial#,......
  • Error creating bean with name 'sqlSessionFactory' defined in class path resource
    项目启动报错原因分析背景:system模块一个月未重启过,今天重启报数据源问题原因:这里报错的原因是数据源配置问题解决:数据源配置在nacos中,拿该模块的nacos数据源配置与项目启动成功的模块的数据源配置进行对比,检查出不同,改为一样即可......
  • C#基础-->cookie和session
    https://www.cnblogs.com/soaeon/p/5604730.html关于cookie和session     cookie      1:一个cookie中可以存放的数据最大在4KB左右      2:cookie存放于客户端       3:cookie分为两种 一种是会话cookie 一种是持久cookie ......
  • 聊聊Zookeeper的Session会话超时重连
    概述简单地说,ZooKeeper的连接与会话就是客户端通过实例化ZooKeeper对象来实现客户端与服务器创建并保持TCP连接的过程。本质上,Session就是一个TCP长连接。会话Session会话的作用:ZKServer执行任何请求之前,都需要Client与Server先建立Session;Client提交给Server的......
  • 彻底搞懂cookie、session、token
    文章目录前言1.cookie2.session3.token3.1为什么要使用token3.2token详解 前言cookie、session、token为了解决什么问题:HTTP是一种无状态的协议,而服务器的业务必须是有状态的。随着在线购物网站、需要登录的网站等等,面临的问题就是要管理......