一种多项目消息管理方法和系统与流程

allin2023-03-22  127



1.本发明涉及互联网技术领域,特别涉及在一种多项目消息管理方法和系统。


背景技术:

2.目前企业内部不同项目使用的消息中间件各不相同,且各项目消息之间并不互通,项目之间若需要互相协作会通过在各自项目重新配置其他项目消息中间件的方式互相调用,通过这种方式进行调用对于多个项目来说是十分麻烦的,多个项目之间互相调用消息队列,则单个项目需要配置多个消息队列的消息发送方法以及配置消息队列信息,这种方案有许多的问题,如项目耦合度过高、项目的维护改造成本过大、存在信息安全的问题等;另一种方法是通过各个项目自行开发api接口并提供相对应的文档供其他项目调用,各个项目之间不需要知道相互的消息中间件的认证信息,各个项目之间通过调用api的方式进行互通,这种调用方式相比于上一种,大大的降低了各项目的耦合度,提高了安全性,但每个项目还是需要进行额外的api开发工作,同时如需引入多个项目的消息队列则需要调用不同的api接口,这些问题都增加了项目的开发成本。
3.也就是说,上述现有技术不支持多项目的消息交互,使得后期的维护成本过大。并且不同项目之间的消息交互因为需要配置多个消息队列的验证,因此安全风险大,并且当消息队列出现错误时可能难以定位排查。


技术实现要素:

4.本发明其中一个发明目的在于提供一种多项目消息管理方法和系统,所述方法和系统通过系统sdk实现项目消息队列的统一管理、转发操作,可以提高项目消息队列的管理效果。
5.本发明另一个发明目的在于提供一种多项目消息管理方法和系统,所述方法和系统在主项目内采用消息队列连接信息,其他项目则设置项目权限或项目组的方式通过项目应用sdk调用的方式进行访问,可以兼顾消息队列的安全和访问效率。
6.本发明另一个发明目的在于提供一种多项目消息管理方法和系统,所述方法和系统根据项目和项目组别接入消息队列,且通过转发各项目之间的消息到消息队列,可以实现无需配置直接调用的消息发送方式。
7.为了实现至少一个上述发明目的,本发明进一步提供一种多项目消息管理方法,所述方法包括如下步骤:
8.建立项目应用、项目组,配置每个项目应用id和项目组id,创建消息队列,每一项目应用绑定至少一个消息队列;
9.通过sdk调用所述项目应用消息,并将所述项目应用消息发送到绑定的对应消息队列;
10.生成包括应用认证数据和转发目标的项目应用消息,判断该项目应用消息是否有转发权限;
11.若判断存在转发权限,则将该项目应用消息转发后解析获取所述项目应用消息中的目标消息队列id,并判断该目标消息队列id对应的发送者是否存在发送权限;
12.若判断所述发送者无发送权限,则返回失败,否则该应用消息访问该消息队列。
13.根据本发明其中一个较佳实施例,所述认证数据包括项目应用id和key,发送方将发送所述项目应用id和key进行认证,服务器获取转发的项目应用信息、项目应用id和key生成token,根据所述token进行转发权限验证。
14.根据本发明另一个较佳实施例,所述转发权限验证的方法包括:
15.服务器将生成的token发送给发送方,所述发送方根据包括所述token和目标消息队列id调用sdk进行验证,通过所述sdk提取token中的应用信息,根据提取的应用信息判断是否存在转发到目标消息队列的权限,若不存在转发权限则返回失败信息。
16.根据本发明另一个较佳实施例,所述转发权限的验证方法还包括:若判断所述应用消息存在转发到目标消息队列的权限,则进一步解析所述token中的内容,提取所述token中的包括消息类型、消息内容、消息发送时间、消息发送者信息。
17.根据本发明另一个较佳实施例,在完成所述应用消息token的解析后,根据解析后的应用消息判断消息类型,若是邮件消息则获取所述邮件消息的消息内容和接收者联系方式来判断是否存在转发权限。
18.根据本发明另一个较佳实施例,判断所述消息队列的类型,其中所述消息队列类型包括通用消息队列,通过修改消息队列所在的项目权限为公共生成对应的消息类型权限为公共类型或将该消息队列添加白名单的方式生成所述通用消息队列。
19.根据本发明另一个较佳实施例,建立所述消息队列的监控服务,用于监控所述消息队列,定期扫描所述消息队列中的运行状态,获取运行异常的状态,并向对应项目或项目组返回异常数据。
20.根据本发明另一个较佳实施例,所述方法包括:预先配置每一项目、项目组的权限信息,同一项目组下应用配置访问权限,配置每一项目、项目组的类型,并根据所述项目、项目组类型配置对应的消息队列类型。
21.为了实现至少一个上述发明目的,本发明进一步提供一种多项目消息管理系统,所述系统执行上述一种多项目消息管理方法。
22.本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行所述一种多项目消息管理方法。
附图说明
23.图1显示的是本发明一种多项目消息管理方法的流程示意图。
24.图2为本发明中消息队列创建和访问的流程示意图。
25.图3显示的是本发明一种多项目消息管理模块示意图。
具体实施方式
26.以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背
离本发明的精神和范围的其他技术方案。
27.可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
28.请结合图1-图3,本发明公开了一种多项目消息管理方法和系统,所述系统包括如下部分:项目应用消息转发模块、项目应用权限管理模块、消息队列管理模块和短信邮件发送模块和客户端接入sdk。其中应用消息转发模块、应用权限管理模块、消息队列管理模块和短信邮件发送模块配置于所述消息管理系统的服务端,所述应用消息转发模块用于转换从客户端发送的消息,并将转换后的客户端消息转发到消息队列中。所述系统将客户端项目通过所述客户端接入sdk连接所述应用消息转发模块,所述客户端接入sdk包含预先配置好的文档调用sdk发送消息给系统的服务端,服务端在接收到消息后可以转化发送给消息队列的格式,通过网关路由功能转发信息到消息队列。
29.具体的,所述项目应用消息转发模块包括消息转换功能和消息转换功能,其中所述消息转换功能包括:
30.客户端的用户通过所述客户端接入sdk将客户端的消息发送给管理系统的服务端,服务端的项目应用消息转发模块在获取到所述客户端的消息后对该客户端消息进行解析,解析后提取转发消息队列id,若未提取到转发消息队列id,则可能是邮件短信形式的消息,直接跳过转发消息队列id的判定。当从客户端消息解析提取所述转发消息队列id后,根据解析的所述消息队列id判断该消息队列的权限信息,需要说明的是该消息队列的权限信息可以预先配置,只要获取的所述消息队列id后可以查找到对应消息队列的权限信息。其中通过所述消息队列的权限信息查询当前客户端的发送者是否有发送到该消息队列的权限,若该当前发送者判定为无该消息队列的发送权限,则不再对客户端的所述当前发射者转发该消息队列,返回访问权限转发失败。若客户端当前发送者存在对应消息队列的发送权限,则将所述客户端发送者的消息转化为符合消息队列的格式的消息,比如转化为json格式的消息。
31.在本发明其中一个较佳实施例中,当客户端发送者消息的消息队列的权限无法提取时,进一步判断发送者消息类型,其中若判定所述发送者消息类型为短信,则提取消息接收者,并通过包括但不仅限于用“;”的方式隔开联系方式。本发明通过json的数据名判断消息的手机号和邮件,其中所述json的数据名可以标识数据类型,从而达到快速识别所述发送者消息类型。当所述发送者消息被判定为邮件信息时,获取所述邮件信息的接收者联系方式,并通过本发明内置的邮件接口发送所述邮件信息。若所述发送者发送的消息为消息队列类型的消息,则提取消息发送时间、消息发送者等需要的日志信息进行记录,之后提取消息内容,根据消息队列id获取消息队列名准备转发。
32.所述项目应用消息转发模块还执行消息转发功能,其中所述消息转发包括:服务端的目应用消息转发模块获取并解析所述发送者消息后,进一步根据解析的消息队列id和消息队列名和路由,将转化完成的消息根据消息队列名和路由发送到对应消息队列的路由通过路由转发到对应的消息队列。
33.值得一提的是,所述项目应用权限管理模块用于建立项目和项目之间的连线,并配置项目消息队列之间的访问权限。其中所述项目应用权限管理模块可以实现的功能包括
项目管理、项目组管理和项目权限管理。其中所述项目管理方法包括:当客户端用户填写项目名称、项目周期、项目人员和人数等信息时,选择对应的项目人员自动创建项目,在新项目创建过程中,系统自动生成项目唯一id,在完成所述项目创建后,在所述项目中添加至少一个消息队列,需要说明的是,所述消息队列为在消息队列管理模块中预先配置连接好的的消息队列,在消息队列被添加时,可以显示所有未被添加的消息队列信息。
34.所述项目组管理的方法包括:客户端用户可以通过填写项目组名称,选择项目组成员及初始项目创建项目组,通过项目组可以在不同的项目之间建立联系,并且配置在同一项目组内的项目才可以获取到访问不同项目的消息队列的权限。
35.所述项目权限管理方法包括:在上述已经创建好的项目组中对不同的项目进行权限,其中所述项目权限包括三种类型:公共、限制和禁止,其中所述公共权限为对所有项目都开放访问权限,使得在同一项目组下的其他项目都可以访问自身为公共权限的项目。所述限制权限为允许同一项目组内部分项目访问所述自身为限制功能权限的项目,其中所述限制权限可以采用包括但不仅限于建立访问白名单的方式。所述禁止权限为禁止同一项目组下所有项目的访问,通常在项目新建立时系统会默认该新项目为禁止权限,只有在该新项目进行人工权限分配的时候才能更改为限制权限和公共权限。其中本发明可以进一步定义消息队列的权限,若消息队列的权限为通用权限,则可以修改项目权限为公共或限制权限指定消息队列的方式实现其他项目对该消息队列的访问。其中可以通过全选项目添加到白名单的方式实现。项目权限类型仅在当前项目组生效,但是不同项目组中白名单信息互通但只显示当前项目组中存在的项目,若项目权限类型为公共或禁止访问则无法修改项目访问白名单且白名单不生效。
36.所述消息队列管理模块所实现的功能包括:消息队列接入、消息队列管理、消息队列状态监控、客户端接入。通过消息队列访问地址和访问凭证接入到消息队列。其中所述管理系统对消息队列的接入采用包括但不仅限于activemq、rabbitmq、kafka、rocketmq等执行适配接入。预先需要配置线性队列所包含的类型,其中所述消息队列类型包括但不仅限于短信类型消息,消息队列类型消息和邮件类型消息;或者根据应用的类型对消息类型进行预先分类,给于每个消息类型的标签。通过消息队列管理模块选择对应类型的消息队列接入,每个客户端用户只能查看到自己添加的消息队列,添加消息队列成功之后,可以到项目应用中添加该消息队列和项目应用绑定。其中所述消息队列管理包括但不仅限于消息队列的修改、添加、测试状态和删除等管理操作。其中所述消息队列状态监控的方法包括:客户端用户选择所要监控的消息队列类型,管理系统自动定期获取选择的消息队列的运行状态,并判断选顶的消息队列运行是否异常,若为异常则返回异常信息。所述客户端接入的方法包括:预先配置好通用接口,为客户端用户提供预先配置好的sdk。
37.所述短信邮件发送模块所实现的方法包括:通过接入短信邮箱云平台以及内置消息队列的方式实现短信邮件发送的功能,将云平台sdk集成进系统内部,编写通过消息队列获取数据并通过sdk发送消息的定时任务。
38.值得一提的是,在项目创建完成后,所述管理系统会自动生成项目id和key用于sdk认证,且当客户端用户新增一条自身的消息队列时,需要填写消息队列名称、消息队列访问地址、消息队列认证信息,并选择选择消息队列类型创建一条消息队列后,所述管理系统会根据填写的消息队列名称、消息队列访问地址、消息队列认证信息访问该消息队列的
状态,若可以实现正常的访问,则该消息队列创建成功,若无法正常访问则返回消息队列创建失败信息。其中若消息队列创建成功则进一步将该消息队列绑定给选定的应用,其中一个项目应用可以绑定多个消息队列。
39.客户端用户通过sdk发送应用id和key进行应用认证,服务器会根据应用信息生成相应的token,用户获取到服务端返回的token,通过该token和需要转发到的消息队列id用户可以根据sdk提供的方法将想要发送的消息发送到该消息队列。客户端用户通过token以及包括但不仅限于消息队列id的必要信息调用sdk,服务端获取到该token对该token进行验证,提取token当中携带的应用信息,根据该应用信息判断是否有权限转发到该消息队列,若无权限,则返回无访问权限转发失败给用户。若存在转发权限,所述管理系统进一步对用户通过sdk发送到消息管理系统的信息进行解析,提取消息类型、消息内容、消息发送时间、消息发送者等信息。
40.在提取消息内容根据消息类型对消息内容进行解析后,若是短信邮件形式的消息,直接根据消息内容和接受者联系方式,若是要发送到消息队列的内容,将信息转化为list类型进行进一步的解析。在信息解析完成之后,根据解析得到的消息队列id获取该消息队列权限信息,若该发送者无该消息队列权限则不进行下一步解析直接返回无权限发送失败,若有该消息队列权限信息,则根据消息队列id获取消息队列名和路由路径转发。
41.本发明上述技术方案存在如下技术优势:1、所述管理系统自身具有消息队列的监控功能,从而可以实时获取消息队列的运行状态返回给客户端用户,因此可以给客户端用户提供控制策略的参考信息,便于开发和运维人员及时解决技术问题。2、所述管理系统采用统一的sdk访问项目组项目中的消息队列,在消息队列的切换访问无需更改代码,只要通过修改所述管理系统的配置即可实现消息队列的切换,因此便于系统的开发和维护。3、所述管理系统可以实现不同项目之间消息队列的互相访问,通过定义消息队列的类型可以减少对不同项目之间交互的配置,同时可以兼顾项目之间交互的安全性。
42.特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(cpu)执行时,执行本技术的方法中限定的上述功能。需要说明的是,本技术上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线段、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线段的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介
质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线段、电线段、光缆、rf等等,或者上述的任意合适的组合。
43.附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
44.本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明,本发明的目的已经完整并有效地实现,本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。

技术特征:
1.一种多项目消息管理方法,其特征在于,所述方法包括如下步骤:建立项目应用、项目组,配置每个项目应用id和项目组id,创建消息队列,每一项目应用绑定至少一个消息队列;通过sdk调用所述项目应用消息,并将所述项目应用消息发送到绑定的对应消息队列;生成包括应用认证数据和转发目标的项目应用消息,判断该项目应用消息是否有转发权限;若判断存在转发权限,则将该项目应用消息转发后解析获取所述项目应用消息中的目标消息队列id,并判断该目标消息队列id对应的发送者是否存在发送权限;若判断所述发送者无发送权限,则返回失败,否则该应用消息访问该消息队列。2.根据权利要求1所述的一种多项目消息管理方法,其特征在于,所述认证数据包括项目应用id和key,发送方将发送所述项目应用id和key进行认证,服务器获取转发的项目应用信息、项目应用id和key生成token,根据所述token进行转发权限验证。3.根据权利要求2所述的一种多项目消息管理方法,其特征在于,所述转发权限验证的方法包括:服务器将生成的token发送给发送方,所述发送方根据包括所述token和目标消息队列id调用sdk进行验证,通过所述sdk提取token中的应用信息,根据提取的应用信息判断是否存在转发到目标消息队列的权限,若不存在转发权限则返回失败信息。4.根据权利要求2所述的一种多项目消息管理方法,其特征在于,所述转发权限的验证方法还包括:若判断所述应用消息存在转发到目标消息队列的权限,则进一步解析所述token中的内容,提取所述token中的包括消息类型、消息内容、消息发送时间、消息发送者信息。5.根据权利要求4所述的一种多项目消息管理方法,其特征在于,在完成所述应用消息token的解析后,根据解析后的应用消息判断消息类型,若是邮件消息则获取所述邮件消息的消息内容和接收者联系方式来判断是否存在转发权限。6.根据权利要求4所述的一种多项目消息管理方法,其特征在于,判断所述消息队列的类型,其中所述消息队列类型包括通用消息队列,通过修改消息队列所在的项目权限为公共生成对应的消息类型权限为公共类型或将该消息队列添加白名单的方式生成所述通用消息队列。7.根据权利要求1所述的一种多项目消息管理方法,其特征在于,建立所述消息队列的监控服务,用于监控所述消息队列,定期扫描所述消息队列中的运行状态,获取运行异常的状态,并向对应项目或项目组返回异常数据。8.根据权利要求1所述的一种多项目消息管理方法,其特征在于,所述方法包括:预先配置每一项目、项目组的权限信息,同一项目组下应用配置访问权限,配置每一项目、项目组的类型,并根据所述项目、项目组类型配置对应的消息队列类型。9.一种多项目消息管理系统,其特征在于,所述系统执行所述权利要求1-8中任意一项所述的一种多项目消息管理方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行所述权利要求1-8中任意一项所述的一种多项目消息管理方法。

技术总结
本发明公开一种多项目消息管理方法和系统,所述方法包括:建立项目应用、项目组,配置每个项目应用id和项目组id,创建消息队列,每一项目应用绑定至少一个消息队列;通过SDK调用所述项目应用消息,并将所述项目应用消息发送到绑定的对应消息队列;生成包括应用认证数据和转发目标的项目应用消息,判断该项目应用消息是否有转发权限;若判断存在转发权限,则将该项目应用消息转发后解析获取所述项目应用消息中的目标消息队列id,并判断该目标消息队列id对应的发送者是否存在发送权限;若判断所述发送者无发送权限,则返回失败,否则该应用消息访问该消息队列。通过系统SDK实现项目消息队列的统一管理、转发操作,可以提高项目消息队列的管理效果。消息队列的管理效果。消息队列的管理效果。


技术研发人员:王加义 陈荣坚 马嵩 朱兴宇 杨国庆 葛云龙
受保护的技术使用者:浙江高信技术股份有限公司
技术研发日:2022.02.11
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-7248.html

最新回复(0)