本发明专利技术涉及信息技术领域,具体涉及一种基于SQL的消息队列SDK访问方法、系统及存储介质,所述方法包括以下步骤:接收包含SQL请求的网络报文;解释所述SQL请求,生成对应的消息队列SDK的调用语句;提交所述调用语句至所述消息队列SDK,获得调用结果;编码所述调用结果,生成所述网络报文的响应报文。本发明专利技术的有益技术效果包括:通过对网络报文请求进行解释和编码,实现本地消息队列SDK和SQL请求之间的转换,实现使用统一的SQL语句即可操作多种语言的消息队列SDK,简化对多种语言的消息队列SDK的访问,提高消息队列SDK访问效率;通过用户验证报文实现对用户身份的验证,保障消息队列SDK访问的安全。SDK访问的安全。SDK访问的安全。
【技术实现步骤摘要】
基于SQL的消息队列SDK访问方法、系统及存储介质
[0001]本专利技术涉及信息
,具体涉及一种基于SQL的消息队列SDK访问方法、系统及存储介质。
技术介绍
[0002]消息队列MQ(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以简单地描述为:当不需要立即获得结果,但是并发量又需要进行控制的时候,就是需要使用消息队列的时候。消息队列主要解决了应用耦合、异步处理、流量削锋等问题。消息队列已经逐渐成为企业IT系统内部通信的核心手段。正因为其具有低耦合、可靠投递、易广播、流量控制以及最终一致性等一系列优点,逐渐成为异步RPC的主要实现手段之一。而为了满足客户对于不同语言的需求,会有各种语言种类SDK实现的异步RPC。对应不同语言的每一种SDK都提供了完整的消息队列的处理调用接口。虽然方便了单个用户的使用,但一个应用项目需要对多个异步RPC进行访问时,就需要编写多个不同语言的调用接口,导致了大量的重复性工作,影响项目的开发效率。为此有必要研究能够实现适应不同SDK的消息队列使用方案。
[0003]现有技术公开了一种多项目消息管理方法和系统,包括:建立项目应用、项目组,配置每个项目应用id和项目组id,创建消息队列,每一项目应用绑定至少一个消息队列;通过SDK调用所述项目应用消息,并将所述项目应用消息发送到绑定的对应消息队列;生成包括应用认证数据和转发目标的项目应用消息,判断该项目应用消息是否有转发权限;若判断存在转发权限,则将该项目应用消息转发后解析获取所述项目应用消息中的目标消息队列id,并判断该目标消息队列id对应的发送者是否存在发送权限;若判断所述发送者无发送权限,则返回失败,否则该应用消息访问该消息队列。通过系统SDK实现项目消息队列的统一管理、转发操作,可以提高项目消息队列的管理效果。但其技术方案无法解决多种语言SDK消息队列访问便捷性不足的问题。
技术实现思路
[0004]本专利技术所要解决的技术问题:目前缺乏适应多种语言消息队列SDK便捷访问方案的技术问题。提出了一种基于SQL的消息队列SDK访问方法、系统及存储介质,能够提供多种语言消息队列SDK统一访问接口,显著提高需要访问多种语言消息队列SDK应用的执行效率。
[0005]为解决上述技术问题,本专利技术采用如下技术方案:基于SQL的消息队列SDK访问方法,包括以下步骤:接收包含SQL请求的网络报文;解释所述SQL请求,生成对应的消息队列SDK的调用语句;提交所述调用语句至所述消息队列SDK,获得调用结果;编码所述调用结果,生成所述网络报文的响应报文。
[0006]作为优选,所述网络报文还包括用户验证报文,所述用户验证报文包括用户登录名及密码,接收所述网络报文后,首先验证用户登录名及密码,若验证通过,则继续执行,反之,若验证不通过,则生成登录验证失败的响应报文。
[0007]作为优选,生成对应的消息队列SDK的调用语句的方法包括:建立SQL关键字与调用语句的转换对照表;依据所述转换对照表获得SQL请求的SQL关键字对应的调用语句;提取所述SQL请求的参数,并填入所述调用语句,即完成调用语句的生成。
[0008]作为优选,提交所述调用语句至消息队列SDK的方法包括:建立消息服务集群和消息队列集群,所述消息服务集群包括若干个消息服务器,所述消息队列集群包括若干个消息队列分片,所述消息队列分片由所述消息队列SDK调用;所述消息服务集群的每个消息服务器均分配至少一个消息队列分片;所述消息服务集群的消息服务器接收所述调用语句,并将收到的调用语句加入所分配的一个消息队列分片中。
[0009]作为优选,所述消息服务集群分配消息队列分片的方法包括:所述消息服务集群的消息服务器周期性投票选举出周期内的Leader服务器;所述Leader服务器生成所述消息队列分片的分配方案。
[0010]作为优选,所述Leader服务器根据消息队列SDK负载,动态调整所述消息队列分片的分配方案,动态调整所述消息队列分片的分配方案的方法包括:所述Leader服务器监控消息队列SDK的负载率;根据所述消息队列SDK的负载率,得出每个消息服务器所对应的消息队列SDK的平均负载率,记为消息服务器的平均负载率;平均负载率高于预设阈值的消息服务器记为高负载消息服务器,平均负载率最低的且分配两个以上消息队列分片的消息服务器记为富余消息服务器,从富余消息服务器的消息队列分片中任选一个消息队列分片分配给高负载消息服务器。
[0011]作为优选,消息队列SDK的负载率包括运行消息队列SDK的服务器的CPU使用率、消息队列SDK的TPS及消息队列SDK的网络流量,所述消息队列SDK平均负载率为每个消息服务器所对应的消息队列SDK的平均CPU使用率、平均TPS及平均网络流量,所述CPU使用率、所述TPS及所述网络流量分别设置有阈值,若所述平均CPU使用率、所述平均TPS或所述平均网络流量超过对应的阈值,则判定平均负载率高于预设阈值,反之,若所述平均CPU使用率、所述平均TPS及所述平均网络流量均未超过对应的阈值,则判定平均负载率低于预设阈值。基于SQL的消息队列SDK访问系统,用于执行如前述的基于SQL的消息队列SDK访问方法,包括客户端、SQL接口服务器和消息服务器,所述客户端向所述SQL接口服务器发送包含SQL请求的网络报文,所述SQL接口服务器解释所述SQL请求,生成对应的消息队列SDK的调用语句,所述SQL接口服务器将所述调用语句提交至所述消息服务器,所述消息服务器调用本地消息队列SDK获得调用结果,将所述调用结果反馈给所述SQL接口服务器,所述SQL接口服务器编码所述调用结果,生成所述网络报文的响应报文,将所述相应报文发送至客户端。
[0012]一种计算机系统,所述计算机系统包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前述
的基于SQL的消息队列SDK访问方法。
[0013]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述的基于SQL的消息队列SDK访问方法。
[0014]本专利技术的有益技术效果包括:通过对网络报文请求进行解释和编码,实现本地消息队列SDK和SQL请求之间的转换,实现使用统一的SQL语句即可操作多种语言的消息队列SDK,简化对多种语言的消息队列SDK的访问,提高消息队列SDK访问效率;通过用户验证报文实现对用户身份的验证,保障消息队列SDK访问的安全;通过消息服务集群和消息队列集群能够实现对消息队列SDK访问负载的均衡控制,实现更为优化的并发管理,提高消息队列SDK访问的效率。
[0015]本专利技术的其他特点和优点将会在下面的具体实施方式、附图中详细的揭露。
附图说明
[0016]下面结合附图对本专利技术做进一步的说明:图1为本专利技术实施例消息队列SDK访问方法流程示意图。
[0017]图2为本专利技术实施例生成调用语句方法流程示意图。
本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.基于SQL的消息队列SDK访问方法,其特征在于,包括以下步骤:接收包含SQL请求的网络报文;解释所述SQL请求,生成对应的消息队列SDK的调用语句;提交所述调用语句至所述消息队列SDK,获得调用结果;编码所述调用结果,生成所述网络报文的响应报文。2.根据权利要求1所述的基于SQL的消息队列SDK访问方法,其特征在于,所述网络报文还包括用户验证报文,所述用户验证报文包括用户登录名及密码,接收所述网络报文后,首先验证用户登录名及密码,若验证通过,则继续执行,反之,若验证不通过,则生成登录验证失败的响应报文。3.根据权利要求1所述的基于SQL的消息队列SDK访问方法,其特征在于,生成对应的消息队列SDK的调用语句的方法包括:建立SQL关键字与调用语句的转换对照表;依据所述转换对照表获得SQL请求的SQL关键字对应的调用语句;提取所述SQL请求的参数,并填入所述调用语句,即完成调用语句的生成。4.根据权利要求1所述的基于SQL的消息队列SDK访问方法,其特征在于,提交所述调用语句至消息队列SDK的方法包括:建立消息服务集群和消息队列集群,所述消息服务集群包括若干个消息服务器,所述消息队列集群包括若干个消息队列分片,所述消息队列分片由所述消息队列SDK调用;所述消息服务集群的每个消息服务器均分配至少一个消息队列分片;所述消息服务集群的消息服务器接收所述调用语句,并将收到的调用语句加入所分配的一个消息队列分片中。5.根据权利要求4所述的基于SQL的消息队列SDK访问方法,其特征在于,所述消息服务集群分配消息队列分片的方法包括:所述消息服务集群的消息服务器周期性投票选举出周期内的Leader服务器;所述Leader服务器生成所述消息队列分片的分配方案。6.根据权利要求5所述的基于SQL的消息队列SDK访问方法,其特征在于,所述Leader服务器根据消息队列SDK负载,动态调整所述消息队列分片的分配方案,动态调整所述消息队列分片的分配方案的方法包括:所述Leader服务器监控消息队列SDK的负载率;根据所述消息队列SDK的负载率,得出每个消息服务器所对应的消息队列SDK的平...
【专利技术属性】
技术研发人员:叶智伟,廖少波,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。