一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于微服务架构的共享服务推送方法及系统与流程

2021-12-15 02:09:00 来源:中国专利 TAG:


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.图1是本发明提供的基于微服务架构的共享服务推送方法的流程示意图之一;
36.图2是本发明提供的基于微服务架构的共享服务推送方法的流程示意图之二;
37.图3是对推送请求进行权重判定,并根据权重判定结果为推送请求选择相应的推送队列过程的流程示意图;
38.图4是本发明提供的基于微服务架构的共享服务推送系统的结构示意图;
39.图5是本发明提供的电子设备的结构示意图。
具体实施方式
40.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.图1和图2示出了本发明实施例提供的基于微服务架构的共享服务推送方法,包括:
42.s110:获取前台应用发起的推送请求;
43.s120:对推送请求进行权重判定,并根据权重判定结果为推送请求选择相应的推送队列;
44.s130:对推送队列进行监听消费,并根据推送请求中待推送消息的消费方式为推送请求选择对应的推送渠道;其中,消费方式包括及时消费和延时消费;
45.s140:根据推送队列对应的推送规则并通过选定的推送渠道,对推送请求对应的服务进行推送;
46.其中,推送渠道预先在微服务系统中进行统一集成管理。
47.可以理解的是,前台应用可以根据自身业务需要选择相应的推送服务接口进行调用,从而向推送网关发起推送请求。
48.为了减少恶意或不符合请求规则的推送请求对服务器资源的浪费,本实施例在通过推送网关接收到推送请求之后,在对推送请求进行权重判定之前,还包括:
49.对推送请求进行规范判定,判断推送请求是否符合请求规范,拦截不符合请求规范的推送请求,并直接返回失败的响应;对符合请求规范的推送请求,则根据推送服务的健康情况和历史服务完成推送的结果进行综合判断,确定调用顺序。
50.可以理解的是,本实施例中提到的请求规范的判定,可以是判定推送请求对应的推送方式是否可用,以及相应的权限判别等,主要对明显不具备推送条件的推送请求进行拦截过滤,避免对服务器资源的不合理占用。
51.参见附图3,本实施例中对推送请求进行权重判定,并根据权重判定结果为推送请求选择相应的推送队列的过程,具体包括:
52.首先,获取请求入参的消息类型,根据消息类型和权值初始化规则,按同步、异步和不同的推送方式设置设定第一初始权值t1;
53.本实施例中权值初始化规则,可以根据系统规定的推送方式对推送请求进行动态配置。例如,短信、邮件等不同的推送方式,会有相应的不同的初始化权值设定,根据使用方业务的不同,可以设定不同的配置,在实际应用过程中,可以配置在配置文件或者数据库中。
54.接着,获取请求入参的消息内容和对应参数,根据请求入参的内容和对应参数查询缓存,得出在一定时间内消息的推送频率和成功或失败的情况,得到第二初始权值t2;
55.然后,将第一初始权值t1和第二初始权值t2相加,得到最终权值t1 t2;
56.最后,将最终权值与预设的权值阈值值域进行对比,若最终权值小于权值阈值最小值,则返回false,结束调用;
57.若最终权值在权值阈值值域内,则将推送请求送入延时队列,等待推送服务消费;
58.若最终权值大于权值阈值最大值,则将推送请求直接送入直达队列。
59.值得一提的是,本实施例中延时队列的推送规则为:定时轮巡确定是否有待推送消息进入,并对进入队列的待推送消息顺序进行编排,按照编排顺序对待推送消息进行延时推送。
60.本实施例中直达队列的推送规则为:通过实时监听确定是否有待推送消息进入,对进入直达队列的待推送消息进行及时推送。
61.需要说明的是,本实施例中初始化权值的设定和权值阈值值域的设定,可以支持动态配置,这样可以支持一些特殊情况的临时解决,从而便于处理及时性问题。
62.在本实施例中,确定推送请求对应的队列信息后,需要根据及时和延时的规则对队列进行监听消费,基于消息队列对消息请求进行队列管理,细致化的对消息的前后顺序进行划分,最后根据消息的消费方式来选择对应的推送渠道。
63.比如如果推送请求对应的服务是发送节日祝福,该消息是需要在节日当天推送出去的,属于延时消费的消息,需要延时触发,所以应该送入延时队列,可以选择邮件、短信等推送方式进行推送。
64.再比如推送请求对应的服务是发送工作任务通知,该消息是需要立刻推送给接收者的,属于及时消费的消息,需要立即触发,所以应该送入直达队列,可以选择飞书、企业微信等推送方式进行推送。
65.更优地,对推送请求对应的服务进行推送之后,还可以包括:
66.根据推送结果信息确定推送请求对应的服务是否推送完成,在确定推送完成后,记录推送请求对应的推送日志。
67.在本实施例中,在将推送请求对应的服务推送之后,还会对推送结果信息进行组装,放入相应的推送队列,在队列消息被消费后落库,在确定推送完成后,还会返回推送网
关进行记录,记录推送请求对应的推送日志,记录的数据存储后将作为上述权重判定环节的数据依据。最后推送网关记录数据后,返回至前台应用。
68.由此可见,本发明实施例提供的基于微服务架构的共享服务推送方法,具有如下优点:
69.1、基于推送网关管理、消息权重判定、消息排序、推送方式选择等环节构建完整的推送服务流程,通过调用日志的统计和梳理,可以对服务资源倾斜提供关键数据;
70.2、通过推送方式的汇总集成,统一管理,保证推送方式实现的最终一致性;
71.3、减少各个微服务内对推送方式的维护,减少人工成本,最终协助各微服务降低成本,提高研发效率。
72.下面对本发明提供的基于微服务架构的共享服务推送系统进行描述,下文描述的基于微服务架构的共享服务推送系统与上文描述的基于微服务架构的共享服务推送方法可相互对应参照。图4示出了本发明实施例提供的基于微服务架构的共享服务推送系统,包括:
73.推送网关模块410,用于获取前台应用发起的推送请求,并对推送请求的推送流程信息进行记录;
74.消息权重模块420,用于对推送请求进行权重判定,并根据权重判定结果为推送请求选择相应的推送队列;
75.消息排序模块430,用于对推送队列进行监听消费,并根据推送请求中待推送消息的消费方式为推送请求选择对应的推送渠道;其中,消费方式包括及时消费和延时消费;
76.推送模块440,用于集成管理多种推送渠道,根据推送队列对应的推送规则并通过选定的推送渠道,对推送请求对应的服务进行推送。
77.值得一提的是,本实施例中的推送网关模块、消息权重模块、消息排序模块、推送模块均可以看成一个微服务,由这些微服务聚合成为一个微服务系统。
78.本实施例中推送网关模块410,主要实现维持推送服务健康状态的检测,完成服务的选择调用以及请求数据的拦截过滤纪录等功能。
79.具体地,推送网关模块410对正在运行的多个推送服务通过接口调用的方式实时监控其正常情况,在选择服务时通过健康情况和服务完成推送的结果情况进行综合选择,在接收推送请求时,对推送请求按照规则进行过滤。
80.可以理解的是,推送服务健康状态的检测,是由推送网关模块410对所有推送服务进行心跳检测,将服务节点状态进行变更的行为。
81.服务选择调用,则是基于负载均衡算法,配合消息权重模块,从推送方式、使用频率、结果导向等维度,对每个推送服务进行加权判定,根据权值对服务进行调用,支持动态配置权值,实现对服务器资源的合理运用。
82.请求数据的拦截过滤纪录,则是根据推送方式的不同建立基础规范(即请求规范),拦截恶意或不符合规范的请求,减少对服务器资源的浪费;同时对即将调用推送服务的请求以及监听调用结果进行记录,作为后续服务选择的权值加成数据依据。
83.本实施例中消息权重模块420主要功能涵盖了根据推送类型进行权值初始化、根据推送记录处理权值、对推送请求权值的实时记录以及根据权值选择队列等功能。
84.可以理解的是,根据推送类型进行权值初始化,是指根据可动态配置的算法规则,
对推送类型进行权值的初始赋值。
85.根据推送记录处理权值,则是由推送信息、频率、入参、记录等多个维度,对推送请求进行权值的加减运算,得出最终权值。
86.对推送请求权值的实时记录,则是将最终权值进行记录,划分最新和历史记录,为权值计算提供数据基础。
87.根据权值选择队列,则是根据系统配置,对权值较高的消息使用优先队列(即直达队列),权值较低的消息则进入延时队列等待消费响应,对推送服务的资源充分利用,合理的根据消息重要程度实现推送的排序。
88.本实施例中消息排序模块430的主要功能在于防止推送请求信息丢失,如果消息推送服务重启,可以保证队列中未消费数据在服务启动后继续发送。
89.可以理解的是,排序指的是基于推送队列的存储和消费,对推送服务进行调用,本实施例中推送队列细分为直达队列和延时队列。
90.具体地,直达队列可以实时监听是否有消息进入,有消息进入则直接根据消息类型和推送渠道进行调用。
91.延时队列则采用定时轮巡的方式进行监听,在排序算法下对消息顺序进行编排,决定消息的延时推送。
92.本实施例中推送模块440主要涵盖了推送方式的集成、推送模板的管理、推送日志的记录等功能。
93.可以理解的是,推送方式的集成,包括对短信、邮件、app消息、rabbitmq、mqtt、飞书、微信、企业微信等方式的消息推送功能。
94.推送模板的管理,则是基于数据库,对常用和固定的消息模板的新增、修改、删除、查询等功能的集成。
95.推送日志的记录,则是基于不同的数据源,使用日志记录服务,以规定的格式和数据库规则对推送方式的调用和执行结果进行记录,供后续运维人员进行问题筛选。
96.需要说明的是,推送模块440可以对日志进行统一记录管理,日志的统一纪录管理基于队列消息下的日志入库,可以根据需要选择多个数据源同步,保证日志的最终落库的成功率。
97.由此可见,本发明实施例提供的基于微服务架构的共享服务推送系统,具有如下优点:
98.1、通过推送网关模块对服务的选择调用,合理的对推送方式的使用进行排序,优化了调用时间和调用频率,降低了资源成本,实现了对推送资源的充分使用;
99.2、通过消息权重模块对推送请求进行权重判定,在规则内对消息进行不同程度的定义划分,为消息排序提供了数据基础;
100.3、通过消息排序模块合理的对推送请求进行分发过滤,将消息的推送进行排序队列的分化,降低对推送服务的调用频率,减轻了服务器的压力;
101.4、通过推送模块对多种推送方式进行集成管理,减少了各个微服务对推送方式实现的重复构造,降低了人工成本,减少了各个微服务关于推送相关的配置管理,保证了推送方式对推送执行方式的最终一致性;
102.5、通过推送服务调用日志的高内聚,可以使运维人员快速定位问题,使得微服务
的总体开发和运维成本降低,从而在系统设计上实现了高内聚、低耦合的设计思路。
103.图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communications interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行基于微服务架构的共享服务推送方法,该方法包括:获取前台应用发起的推送请求;对推送请求进行权重判定,并根据权重判定结果为推送请求选择相应的推送队列;对推送队列进行监听消费,并根据推送请求中待推送消息的消费方式为推送请求选择对应的推送渠道;其中,消费方式包括及时消费和延时消费;根据推送队列对应的推送规则并通过选定的推送渠道,对推送请求对应的服务进行推送;其中,推送渠道预先在微服务系统中进行统一集成管理。
104.此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
105.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于微服务架构的共享服务推送方法,该方法包括:获取前台应用发起的推送请求;对推送请求进行权重判定,并根据权重判定结果为推送请求选择相应的推送队列;对推送队列进行监听消费,并根据推送请求中待推送消息的消费方式为推送请求选择对应的推送渠道;其中,消费方式包括及时消费和延时消费;根据推送队列对应的推送规则并通过选定的推送渠道,对推送请求对应的服务进行推送;其中,推送渠道预先在微服务系统中进行统一集成管理。
106.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于微服务架构的共享服务推送方法,该方法包括:获取前台应用发起的推送请求;对推送请求进行权重判定,并根据权重判定结果为推送请求选择相应的推送队列;对推送队列进行监听消费,并根据推送请求中待推送消息的消费方式为推送请求选择对应的推送渠道;其中,消费方式包括及时消费和延时消费;根据推送队列对应的推送规则并通过选定的推送渠道,对推送请求对应的服务进行推送;其中,推送渠道预先在微服务系统中进行统一集成管理。
107.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
108.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可
借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
109.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献