[发明专利]一种基于Dubbo服务的会话消息的传递方法和装置有效
申请号: | 202011206768.6 | 申请日: | 2020-11-03 |
公开(公告)号: | CN112256456B | 公开(公告)日: | 2021-10-01 |
发明(设计)人: | 乐思文 | 申请(专利权)人: | 武汉物易云通网络科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/48;G06F8/41 |
代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 崔肖肖;向彬 |
地址: | 430000 湖北省武汉市东湖新技术开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 dubbo 服务 会话 消息 传递 方法 装置 | ||
本发明公开了一种基于Dubbo服务的会话消息的传递方法和装置,该传递方法包括:第一Dubbo服务接收到来自于消费方的第一请求后,选取目标执行线程对第一请求进行处理;第一过滤器从第一请求中获取第一上下文消息,并将第一上下文消息存储在第一线程局部变量中,在第一过滤器完成上下文消息的存储后,第二过滤器将第一上下文消息存储在第二线程局部变量;在第一Dubbo服务发生级联调用时,可以从第二线程局部变量中获取第一上下文消息,以进行第一请求的后续逻辑处理。在本发明中,扩展的过滤器将上下文消息存储在新增的局部变量中,当发生级联调用时,可以从新增的局部变量获取上下文消息,避免Dubbo服务中会话消息的问题丢失。
技术领域
本发明属于Dubbo服务技术领域,更具体地,涉及一种基于Dubbo服务的会话消息的传递方法和装置。
背景技术
目前,基于开源Java API(Application Programming Interface,简写为API)网关框架Soul和微服务框架Dubbo的组合架构如图1所示,API网关作为消费方,将原始请求转发到后端的Dubbo服务A,Dubbo服务A在对原始请求进行处理的过程中,需要将原始请求分解为逻辑1和逻辑2,其中,逻辑1是调用另外的微服务Dubbo服务B,逻辑2是紧跟在逻辑1后处理,当两个逻辑串行执行完成后,Dubbo服务A的此业务方才算处理完成。例如,原始请求是请求修改密码接口,Dubbo服务A在对原始请求进行处理的过程中,可以将原始请求分解为两个逻辑,逻辑1:验证旧密码是否正确;逻辑2:将旧密码修改成新密码。对于逻辑1,需要调用另外的Dubbo服务去验旧密码。验证通过后,再执行逻辑2为用户修改密码,在实际应用场景下,逻辑2在执行过程中,需要用到原始请求的上下文消息。
然而,针对前述应用场景,现有的Dubbo源代码的设计方案为:API网关的原始请求的上下文消息传递到后端的Dubbo服务A中,并且存储到该Dubbo服务A当前工作线程的线程局部变量InternalThreadLocalRpcContext中。如果当前工作线程再继续调用另外一个Dubbo服务时,那么线程局部变量InternalThreadLocalRpcContext会被清空,将会导致原始请求的上下文消息丢失,前述应用场景的逻辑2由于无法获取到上下文消息而导致业务执行失败。
鉴于此,克服该现有技术产品所存在的不足是本技术领域亟待解决的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于Dubbo服务的会话消息的传递方法和装置,其目的在于,扩展过滤器和线程局部变量,扩展的过滤器将上下文消息存储在新增的局部变量中,当发生级联调用时,可以从新增的局部变量获取上下文消息,以解决Dubbo服务中会话消息丢失的问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于Dubbo服务的会话消息的传递方法,所述传递方法应用于Dubbo服务系统,所述Dubbo服务系统包括至少一个节点,在所述节点上部署Dubbo服务,其中,所述Dubbo服务包括多个执行线程;
所述传递方法包括:
第一Dubbo服务接收到来自于消费方的第一请求后,选取目标执行线程对所述第一请求进行处理,其中,所述目标执行线程配套设置有第一线程局部变量、第二线程局部变量、第一过滤器和第二过滤器;
所述第一过滤器从所述第一请求中获取第一上下文消息,并将所述第一上下文消息存储在所述第一线程局部变量中,
在所述第一过滤器完成上下文消息的存储后,所述第二过滤器将所述第一上下文消息存储在所述第二线程局部变量;
在所述第一Dubbo服务发生级联调用时,可以从所述第二线程局部变量中获取所述第一上下文消息,以进行所述第一请求的后续逻辑处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉物易云通网络科技有限公司,未经武汉物易云通网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011206768.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:总线数据采集方法及装置
- 下一篇:一种音乐声乐教学系统及装置