会话重建方法、装置、设备、存储介质及产品与流程

摘要: 本技术涉及流式数据处理,尤其涉及一种会话重建方法、装置、设备、存储介质及产品。背景技术:1、在分布式无状态服务集群架构中,服务实例采用无状态设计,依托负载均衡机...
会话重建方法、装置、设备、存储介质及产品与流程

本技术涉及流式数据处理,尤其涉及一种会话重建方法、装置、设备、存储介质及产品。

背景技术:

1、在分布式无状态服务集群架构中,服务实例采用无状态设计,依托负载均衡机制实现请求的动态分发与故障容错。针对需要连续交互的实时业务场景,需要在连续的交互过程中保持历史信息的连贯性,以保障会话的连续性与处理质量。

2、然而,当客户端断线重连时,负载均衡机制大概率将重连请求分发至新的服务实例。由于各服务实例相互独立、内存数据不互通,新服务实例无法获取原交互过程中的历史信息,只能从零开始处理或丢弃已有结果,导致会话内容中断、处理断层,严重影响业务连续性。

3、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

1、本技术的主要目的在于提供一种会话重建方法、装置、设备、存储介质及产品,能够避免因服务实例切换导致的会话处理状态丢失,提高会话的连续性。

2、为实现上述目的,本技术提出一种会话重建方法,由终端执行,所述方法包括:

3、在与无状态服务集群中的第一服务实例进行会话期间,保存会话上下文;

4、在与所述第一服务实例的会话断开的情况下,基于所述会话上下文构造重连请求;

5、向服务器发送所述重连请求,以使所述服务器将所述重连请求分配至所述无状态服务集群中的第二服务实例,并由所述第二服务实例基于所述会话上下文恢复所述会话。

6、可选地,所述在与无状态服务集群中的第一服务实例进行会话期间,保存会话上下文,包括:

7、在与所述第一服务实例进行会话期间,接收所述第一服务实例响应于所述终端发送的流式输入数据返回的流式处理结果;

8、从所述流式处理结果中,识别已定稿的处理结果片段;

9、将所述已定稿的处理结果片段作为所述会话上下文进行保存。

10、可选地,所述从所述流式处理结果中,识别已定稿的处理结果片段,包括:

11、检测所述流式处理结果中各处理结果片段是否到达预设的内容边界;

12、将到达所述内容边界的处理结果片段,确定为已定稿的处理结果片段。

13、可选地,所述从所述流式处理结果中,识别已定稿的处理结果片段,包括:

14、检测所述流式处理结果中各处理结果片段之间的接收时间间隔;

15、若相邻处理结果片段之间的接收时间间隔超过预设时间阈值,将相邻处理结果片段中的前一处理结果片段确定为已定稿的处理结果片段。

16、可选地,所述将所述已定稿的处理结果片段作为所述会话上下文进行保存之后,所述方法还包括:

17、获取针对所述已定稿的处理结果片段的修正片段;

18、从所述会话上下文的存储区域中定位所述修正片段对应的原片段,并以所述修正片段替换所述原片段。

19、可选地,所述获取针对所述已定稿的处理结果片段的修正片段,包括:

20、从新接收的流式处理结果中,识别所述已定稿的处理结果片段的修订版本,作为所述修正片段;

21、或者,基于对所述已定稿的处理结果片段的本地编辑操作,获取所述修正片段。

22、可选地,所述将所述已定稿的处理结果片段作为所述会话上下文进行保存,包括:

23、确定本地缓存队列中已存储的会话上下文数量是否达到预设容量上限;

24、若未达到所述预设容量上限,则将所述已定稿的处理结果片段存入所述本地缓存队列;

25、若已达到所述预设容量上限,则基于预设淘汰策略从所述本地缓存队列中移除目标会话上下文,并将所述已定稿的处理结果片段存入所述本地缓存队列。

26、可选地,所述在与所述第一服务实例的会话断开的情况下,基于所述会话上下文构造重连请求,包括:

27、在与所述第一服务实例的会话断开的情况下,读取已保存的会话上下文;

28、基于读取的所述会话上下文,生成会话上下文快照;

29、将所述会话上下文快照封装至重连控制帧中,并将封装完成的所述重连控制帧作为所述重连请求。

30、可选地,所述在与所述第一服务实例的会话断开的情况下,读取已保存的会话上下文,包括:

31、在与所述第一服务实例的会话断开的情况下,获取所述会话的属性信息;

32、从预设的多种读取规则中确定所述会话的属性信息对应的读取规则;

33、按照确定的读取规则,读取已保存的会话上下文。

34、可选地,所述会话的属性信息包括以下至少一种:

35、所述会话的业务类型、所述会话的断开原因、所述会话的持续时间、所述会话上下文的累积数据量;

36、所述预设的读取规则包括以下至少一种:

37、读取所有已保存的会话上下文;

38、读取最近预设数量的会话上下文;

39、读取满足预设时间范围的会话上下文。

40、可选地,所述基于读取的所述会话上下文,生成会话上下文快照,包括:

41、通过大语言模型对读取的所述会话上下文进行语义理解,生成语义压缩后的所述会话上下文;

42、将语义压缩后的所述会话上下文作为所述会话上下文快照。

43、此外,为实现上述目的,本技术提出另一种会话重建方法,由服务器执行,所述方法包括:

44、接收终端发送的重连请求,所述重连请求由所述终端在与无状态服务集群中的第一服务实例的会话断开的情况下生成;

45、将所述重连请求分配至所述无状态服务集群中的第二服务实例;

46、基于所述第二服务实例从所述重连请求中提取会话上下文,并基于所述会话上下文恢复与所述终端之间的会话。

47、可选地,所述基于所述会话上下文恢复与所述终端之间的会话,包括:

48、建立所述第二服务实例与所述终端间的连接,并将提取的所述会话上下文写入所述连接对应的会话上下文存储区域;

49、在所述连接上,基于所述会话上下文存储区域中的内容,恢复与所述终端之间的会话。

50、此外,为实现上述目的,本技术还提出一种会话重建装置,应用于终端,所述装置包括:

51、上下文保存模块,用于在与无状态服务集群中的第一服务实例进行会话期间,保存会话上下文;

52、请求构造模块,用于在与所述第一服务实例的会话断开的情况下,基于所述会话上下文构造重连请求;

53、请求发送模块,用于向服务器发送所述重连请求,以使所述服务器将所述重连请求分配至所述无状态服务集群中的第二服务实例,并由所述第二服务实例基于所述会话上下文恢复所述会话。

54、可选地,所述上下文保存模块,包括:

55、结果接收单元,用于在与所述第一服务实例进行会话期间,接收所述第一服务实例响应于所述终端发送的流式输入数据返回的流式处理结果;

56、定稿识别单元,用于从所述流式处理结果中,识别已定稿的处理结果片段;

57、定稿保存单元,用于将所述已定稿的处理结果片段作为所述会话上下文进行保存。

58、可选地,所述定稿识别单元,用于检测所述流式处理结果中各处理结果片段是否到达预设的内容边界;将到达所述内容边界的处理结果片段,确定为已定稿的处理结果片段。

59、可选地,所述定稿识别单元,用于检测所述流式处理结果中各处理结果片段之间的接收时间间隔;若相邻处理结果片段之间的接收时间间隔超过预设时间阈值,将相邻处理结果片段中的前一处理结果片段确定为已定稿的处理结果片段。

60、可选地,所述上下文保存模块还包括:

61、定稿修改单元,用于获取针对所述已定稿的处理结果片段的修正片段;从所述会话上下文的存储区域中定位所述修正片段对应的原片段,并以所述修正片段替换所述原片段。

62、可选地,所述定稿修改单元,用于从新接收的流式处理结果中,识别所述已定稿的处理结果片段的修订版本,作为所述修正片段;或者,基于对所述已定稿的处理结果片段的本地编辑操作,获取所述修正片段。

63、可选地,所述定稿保存单元,用于确定本地缓存队列中已存储的会话上下文数量是否达到预设容量上限;若未达到所述预设容量上限,则将所述已定稿的处理结果片段存入所述本地缓存队列;若已达到所述预设容量上限,则基于预设淘汰策略从所述本地缓存队列中移除目标会话上下文,并将所述已定稿的处理结果片段存入所述本地缓存队列。

64、可选地,所述请求构造模块,包括:

65、上下文读取单元,用于在与所述第一服务实例的会话断开的情况下,读取已保存的会话上下文;

66、快照生成单元,用于基于读取的所述会话上下文,生成会话上下文快照;

67、请求构造单元,用于将所述会话上下文快照封装至重连控制帧中,并将封装完成的所述重连控制帧作为所述重连请求。

68、可选地,所述上下文读取单元,用于在与所述第一服务实例的会话断开的情况下,获取所述会话的属性信息;从预设的多种读取规则中确定所述会话的属性信息对应的读取规则;按照确定的读取规则,读取已保存的会话上下文。

69、可选地,所述会话的属性信息包括以下至少一种:

70、所述会话的业务类型、所述会话的断开原因、所述会话的持续时间、所述会话上下文的累积数据量;

71、所述预设的读取规则包括以下至少一种:

72、读取所有已保存的会话上下文;

73、读取最近预设数量的会话上下文;

74、读取满足预设时间范围的会话上下文。

75、可选地,所述快照生成单元,用于通过大语言模型对读取的所述会话上下文进行语义理解,生成语义压缩后的所述会话上下文;将语义压缩后的所述会话上下文作为所述会话上下文快照。

76、此外,为实现上述目的,本技术还提出一种会话重建装置,应用于服务器,所述装置包括:

77、请求接收模块,用于接收终端发送的重连请求,所述重连请求由所述终端在与无状态服务集群中的第一服务实例的会话断开的情况下生成;

78、请求分配模块,用于将所述重连请求分配至所述无状态服务集群中的第二服务实例;

79、会话恢复模块,用于基于所述第二服务实例从所述重连请求中提取会话上下文,并基于所述会话上下文恢复与所述终端之间的会话。

80、可选地,所述会话恢复模块,用于建立所述第二服务实例与所述终端间的连接,并将提取的所述会话上下文写入所述连接对应的会话上下文存储区域;在所述连接上,基于所述会话上下文存储区域中的内容,恢复与所述终端之间的会话。

81、此外,为实现上述目的,本技术还提出一种会话重建设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的会话重建方法的步骤。

82、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的会话重建方法的步骤。

83、此外,为实现上述目的,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的会话重建方法的步骤。

84、本技术提出的一个或多个技术方案,至少具有以下技术效果:

85、本技术提供的会话重建方案,在与第一服务实例进行会话期间,通过在本地保存会话上下文,使得会话的历史处理状态得以在终端侧留存。在与第一服务实例的会话断开的情况下,终端基于本地保存的会话上下文构造重连请求,实现了将历史处理状态随身携带的效果,避免了因实例切换导致的状态丢失。终端向服务器发送该重连请求后,由服务器将重连请求分配至第二服务实例,第二服务实例能够基于该会话上下文恢复该会话,从而在无需中心化存储、不改造服务端架构的前提下,实现了会话上下文在无状态服务集群中的随连接迁移与快速重建,有效避免了因服务实例切换导致的会话处理断层,保障了会话的连续性与处理质量,同时降低了系统复杂度和运维成本。