路由方法、系统、存储介质及计算机设备与流程
未命名
07-27
阅读:80
评论:0
1.本发明涉及于邮件任务管理技术领域,尤其涉及一种路由方法、系统、存储介质及计算机设备。
背景技术:
2.现有技术中,收件路由方案可以类比redis cluster的集群哈希槽的分配方案。即每个收件服务节点接管一部分的哈希槽,然后通过计算邮件id的哈希值来确定哪个节点启动定时任务处理收件。现有的收件路由方案的路由规则的配置在本地配置文件无法动态更新,如果需要增减节点需要修改配置,必须重新发布服务版本,配置不灵活,耗时耗力,不易拓展。
技术实现要素:
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.图1为本发明第一个实施例中路由方法的流程图;
45.图2为本发明第一个实施例中步骤s102的流程图;
46.图3为本发明第二个实施例中路由方法的子流程图;
47.图4为本发明第三个实施例中路由方法的子流程图;
48.图5为本发明第一个实施例中步骤s103的流程图;
49.图6为本发明第一个实施例中步骤s104的流程图;
50.图7为本发明第一个实施例中步骤s105的流程图;
51.图8为本发明第一个实施例中路由系统的示意图;
52.图9为本发明第一个实施例中计算机设备的结构示意图。
具体实施方式
53.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
54.请结合参看图1,其为本发明第一个实施例中路由方法的流程图。其中,本发明实施例提供的路由方法具体包括下面步骤。
55.当路由的结果的收件服务实例与当前收件服务实例相同时,在当前收件服务实例启动定时任务来处理定时收件并保存定时任务;以及,当路由的收件服务实例与当前收件服务实例不相同时,再判断当前收件服务实例,是否已启动定时任务,如若启动则关闭定时任务并删除定时任务。
56.步骤s101,获取动态配置中心发布的路由规则。在本实施例中,使用名称和配置服务(name and config service,nacos)平台做为配置中心。进一步地,nacos也作为服务注册中心用于实现服务的注册与发现。一些企业为springcloud贡献了一个子项目,叫做springcloud alibaba,其中包括了微服务开发中的几个基础组件,nacos就是此项目中的一项技术。nacos动态配置实现自定义路由规则(routeconfig)配置,可实现clientid、用户id以及邮箱粒度级别的规则配置,具体地,路由目标可以是单个收件服务实例(instance),或者某个集群的多个实例(instance)列表,同时监听路由规则(routeconfig)变化,所有实例可实时更新拿到最新的路由规则(routeconfig)。收件服务节点获取动态配置中心发布的路由规则。
57.本实施例中,nacos同时具备了动态配置中心和服务注册中心的功能,可以减少依赖的组件。nacos注册中心功能实现服务的注册和上线下监听。收件服务实例启动时将自身注册到nacos注册中心,同时监听所有收件服务实例上下线,当所有的实例全部上线时,每
个收件服务实例都会从nacos注册中心拉取所有收件服务实例列表构建相同的一致性哈希环,一致性哈希算法可以实现的多实例节点负债均衡效果更加明显,便于后续更新路由规则。
58.在一些可行的实施例中,动态配置中心还可以使用apollo。服务注册中心可以使用eureka或者zookeeper等。
59.步骤s102,根据路由规则得到最新收件服务实例。在本实施例中,收件服务节点根据路由规则得到最新收件服务实例,收件服务实例与邮箱相对应,当邮箱配置通过路由规则(routeconfig)匹配到多个收件服务实例时,再通过由多个收件服务实构建的一致性哈希环找到最近的那个收件服务实例,实现最终一致路由,在最终的确定的收件服务实例上启动该邮件的定时任务处理收件。在本实施例中确定一个最终的收件服务实例(instance),即为最新收件服务实例。
60.步骤s103,判断最新收件服务实例与当前收件服务实例是否相同。在本实施例中,需要判断根据最新的路由规则得到的新收件服务实例是否就是当前的收件服务实例。具体请参照步骤s1031-步骤s1034。
61.步骤s104,当最新收件服务实例与当前收件服务实例相同时,利用当前收件服务实例启动邮箱的定时任务。在本实施例中,当最新收件服务实例与当前收件服务实例相同时,说明当前的收件服务实例是最新的收件服务实例,不需要进行更改,所以根据当前收件服务实例启动定时任务来处理定时收件。具体请参照步骤s1041-步骤s1042。
62.步骤s105,当最新收件服务实例与当前收件服务实例不同时,利用最新收件服务实例启动邮箱的定时任务。在本实施例中,启动第i条邮箱配置的定时收件任务,并将任务保存到缓存区域。进一步地,判断缓存区域中是否有该邮箱的之前的定时收件任务。有的话,清除存缓存区域中该邮箱的定时任务,并停止该定时收件任务。具体请参照步骤s1051-步骤s1054。
63.上述实施例中,通过获取动态配置中心发布的路由规则;根据路由规则得到最新收件服务实例;判断最新收件服务实例与当前收件服务实例是否相同;当最新收件服务实例与当前收件服务实例相同时,根据当前收件服务实例启动定时任务来处理定时收件;当最新收件服务实例与当前收件服务实例不同时,缓存最新收件服务实例,并根据最新收件服务实例启动定时任务来处理定时收件的技术方案,不需要重新发布服务实例的版本,仅通过更新路由规则,就能实现收件服务实例的动态配置更新,配置灵活,省时省力,新的路由规则更符合当前的情况,能够使各个服务节点的负载能够更加均衡,有效的提高定时任务的处理效率。
64.请结合参看图2,其为本发明第一个实施例中步骤s102的流程图。其中,步骤s102,根据路由规则得到最新收件服务实例,具体包括下面步骤。
65.步骤s1021,判断动态配置中心发布的路由规则中包含的若干第一收件服务实例之间是否存在冲突。在本实施例中,依次判断多个第一收件服务实例之间是否存在相同的邮箱。
66.步骤s1022,当若干第一收件服务实例之间存在冲突时,根据多个第一收件服务实例构建一致性哈希环。具体地,当两个或者多个间的第一收件服务实例存在相同的邮箱。
67.步骤s1023,根据一致性哈希环得到最新收件服务实例。具体地,在一致性哈希环
上选取距离最近的收件服务实例作为最新收件服务实例。
68.具体地,首先,nacos动态配置中心拉取所有收件服务实例列表构建一致性哈希环。收件服务中心从nacos动态配置中心拉取路由配置,并监听配置变更。启动一个定时拉取邮箱配置列表任务,间隔n分钟,拉取所有邮箱配置列表,从第i=1条开始遍历。进一步地,nacos的动态配置技术实现的自定义规则配置灵活简单易用,粒度可大可小,路由切换方便,可支持不同级别的灰度策略。
69.在本实施例中,收件服务还关联了其他关联服务,例如,增删改邮箱账号配置、查询邮箱配置参数等。具体地,根据客户端的指令将指定扥邮箱添加到指定的收件服务中。查询拉取所有邮箱配置记录。邮箱配置参数与于关系型数据库服务(relational database service,rds)相关,rds数据库是一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务。rds数据库用于存储邮箱配置记录,一个邮箱账号一条配置记录。上述实施例能够有效控制邮件处理的流量使得每一个服务实例都得到最优程度的利用,保证每一个邮箱的定时任务能够顺利执行。
70.请结合参看图3,其为本发明第二个实施例中路由方法的流程图。第二实施例提供的路由方法与第一实施例提供的路由方法的差异在于在获取动态配置中心发布的路由规则之前,本发明实施例提供的路由方法具体包括下面步骤。
71.步骤s301,在注册中心注册收件服务实例。在本实施例中,每一个服务实例都要现在注册中心进行注册才能够在后续被分配使用。
72.步骤s302,从注册中心获取收件服务实例列表,收件服务实例列表包括若干收件服务实例。在本实施例中,当从注册中心获取一个收件服务实例时,这一个收件服务实例就是最新收件服务实例;当从注册中心获取多个收件服务实例时,利用一致性哈希环,确定最优收件服务实例作为最新收件服务实例。
73.本实施例中,当从注册中心获取一个收件服务实例时,这一个收件服务实例就是最新收件服务实例;当从注册中心获取多个收件服务实例时,利用一致性哈希环,确定最优收件服务实例作为最新收件服务实例。保证收件服务实例能够以最优的方式运行,也保证在当前服务实例上启动收件任务的邮箱能够准时启定时收件任务。
74.请结合参看图4,其为本发明第三个实施例中路由方法的流程图。第三实施例提供的路由方法与第一实施例提供的路由方法的差异在于在获取动态配置中心发布的路由规则之前,本发明实施例提供的路由方法具体包括下面步骤。
75.步骤s401,监听动态配置中心的服务列表是否更新,服务列表包括多个路由规则。
76.步骤s402,当服务列表更新时,收件服务实例列表中所有的收件服务实例均获取动态配置中心发布的路由规则。
77.本实施例中采用灰度发布来进行路由规则的更新,其中,灰度发布又名金丝雀发布是指在黑与白之间,能够平滑过渡的一种发布方式。收件服务监听配置中心的服务列表是否更新,当服务列表更新时,所有的收件服务实例获取动态配置中心发布的路由规则。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,不会影响正在实行的其他路由规则。
78.上述实施例,采用灰度发布方式实现路由规则的更新,能够平稳的处理路由规则更新时对正在进行的收件服务实例带来的影响,保证路由规则下发时其他收件服务实例不
受影响。
79.请结合参看图5,其为本发明第一个实施例中步骤s103的流程图。其中,步骤s103,判断最新收件服务实例与当前收件服务实例是否相同,具体包括下面步骤。
80.步骤s1031,根据最新收件服务实例对邮箱列表进行扫描,邮箱列表包括多个邮箱的邮箱信息。具体地,邮箱信息包括了邮箱的地址,以及邮箱需要被哪一个收件服务实例来启动。邮箱列表中包含了十万条邮箱信息,最新收件服务实例对十万条邮箱信息依次进行扫描,更进一步地,最新收件服务实例对邮箱列表进行扫描是定时任务,设置十分钟为扫描一次邮箱列表的时间。在本实施例中数据仅做示例不做限定。
81.步骤s1032,根据邮箱信息判断最新需要启动定时任务的邮箱与当前需要启动定时任务的邮箱是否相同。具体地,根据扫描得到的所有邮箱信息判断邮箱的定时收件任务是否是由最新收件服务实例来启动。
82.步骤s1033,当最新需要启动定时任务的邮箱与当前需要启动定时任务的邮箱相同时,判定最新收件服务实例与当前收件服务实例相同。具体地,当所有的邮箱的定时收件任务是由最新收件服务实例来启动时,判定最新收件服务实例与当前收件服务实例相同。
83.步骤s1034,当最新需要启动定时任务的邮箱与当前需要启动定时任务的邮箱不同时,判定最新收件服务实例与当前收件服务实例不同。具体地,当有一个邮箱的定时收件任务不是由最新收件服务实例来启动时,判定最新收件服务实例与当前收件服务实例不同。
84.本实施例中,邮箱信息存储于rds数据库中,在获取最新收件服务实例中多个定时任务的最新邮箱信息,其中,邮箱信息包括邮箱id和邮箱id哈希值,根据邮箱id从rds数据库中找到邮箱的配置信息。进一步地,获取当前邮箱的邮箱id、邮箱id哈希值以及配置信息。分别比对最新邮箱信息与当前邮箱信息中包含的信息是否一致,在一些实施例中可以根据需求,对比邮箱中指定的部分信息,例如,邮箱的配置参数、邮箱id的哈希值等,也可以对比获取到的邮箱的全部参数。具体根据需要设置需要对比的邮箱信息,这里出现的参数仅作示例不做限定。当最新邮箱信息与当前邮箱信息一致时,说明最新收件服务实例中多个定时任务与当前收件服务实例中多个定时任务相同,进一步说明最新收件服务实例与当前收件服务实例相同。当最新邮箱信息与当前邮箱信息不一致时,判断最新收件服务实例中多个定时任务与当前收件服务实例中多个定时任务不同,进一步说明最新收件服务实例与当前收件服务实例不同。
85.上述实施例中,nacos的注册中心功能监听实例的上下线,配合已知的实例数量,即使有实例下线或者由于服务升级实例重启,也不影响其他正在运行的实例节点,最大限度降低了升级服务时重启的影响。
86.上述实施例中,保证每一个启动定时收件任务的邮箱是被唯一的收件服务实例控制,防止出现多个服务实例控制一个邮箱,导致邮箱的定时收件任务不能顺利进行。
87.请结合参看图6,其为本发明第一个实施例中步骤s104的流程图。其中,步骤s104,利用当前收件服务实例启动邮箱的定时任务,具体包括下面步骤。
88.步骤s1041,判断邮箱的定时任务是否已经启动。
89.步骤s1042,当邮箱的定时任务未启动时,启动邮箱的定时任务。
90.上述实施例中,当最新收件服务实例已启动时,首先扫描所有由最新收件服务实
例负责的邮箱的定时任务是否已经启动,当邮箱的定时任务未启动时,启动邮箱的定时任务;当邮箱的定时任务已经启动时,保持定时任务启动状态,不再做其他处理。
91.请结合参看图7,其为本发明第一个实施例中步骤s105的流程图。其中,步骤s105,利用最新收件服务实例启动邮箱的定时任务,具体包括下面步骤。
92.步骤s1051,根据邮箱信息判断邮箱是否利用最新收件服务实例启动定时任务。
93.步骤s1052,当邮箱不利用最新收件服务实例启动定时任务时,判断邮箱是否开启了定时任务。
94.步骤s1053,当上述邮箱开启了定时任时,关闭定时任务。
95.步骤s1054,当邮箱利用最新收件服务实例启动定时任务时,启动邮箱的定时任务。
96.上述实施例中,当最新收件服务实例已启动但是最新收件服务实例不是当前收件服务实例时,首先扫描不是由最新收件服务实例负责的邮箱的定时任务是否已经启动,当邮箱的定时任务未启动时,不做处理;当邮箱的定时任务已经启动时,关闭邮箱的定时启动任务。当邮箱是根据最新收件服务实例启动定时任务时,根据步骤s1041-步骤s1042启动邮箱的定时任务。
97.上述实施例保证一个邮箱由一个收件服务实例来控制,保证收件服务实例的动态配置更新,配置灵活,省时省力,新的路由规则更符合当前的情况,能够使各个服务节点的负载能够更加均衡,有效的提高邮件的定时任务的处理效率。
98.请结合参看图8,本发明实施例还提供一种路由系统800,路由系统800包括获取模块810、接收模块820、判断模块830、第一启动模块840和第二启动模块850。
99.获取模块810,用于获取动态配置中心发布的路由规则。
100.接收模块820,用于根据路由规则得到最新收件服务实例。
101.判断模块830,用于判断最新收件服务实例与当前收件服务实例是否相同判断最新收件服务实例与当前收件服务实例是否相同。
102.第一启动模块840,用于当最新收件服务实例与当前收件服务实例相同时,利用当前收件服务实例启动邮箱的定时任务。
103.第二启动模块850,用于当最新收件服务实例与当前收件服务实例不同时,利用最新收件服务实例启动邮箱的定时任务。
104.上述实施例不需要重新发布收件服务实例的版本,仅通过更新路由规则,就能实现收件服务实例的动态配置更新,配置灵活,省时省力,新的路由规则更符合当前的情况,能够使各个服务节点的负载能够更加均衡,有效的提高定时任务的处理效率。
105.本发明实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述的任一项方法的步骤。具体地,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram
(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
106.请结合参看图9,其为一个实施例中计算机设备的内部结构示意图。计算机设备900包括存储器910和处理器920,存储器910存储有计算机程序,计算机程序被处理器执行时,使得处理器920执行上述任一项方法的步骤。
107.计算机设备900还包括通过系统总线930连接的处理器920、存储器910和网络接口940。其中,存储器910包括非易失性存储介质和内存储器。该计算机设备900的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器920执行时,可使得处理器920实现路由方法。该内存储器910中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行路由方法。
108.其中,存储器910至少包括一种类型的计算机可读存储介质,该计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器910在一些实施例中可以是计算机设备900的内部存储单元,例如计算机设备900的硬盘。存储器910在另一些实施例中也可以是计算机设备900的外部存储设备,例如计算机设备900上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字卡(secure digital,sd),闪存卡(flash card)等。进一步地,存储器910还可以既包括计算机设备900的内部存储单元也包括外部存储设备。存储器910不仅可以用于存储安装于计算机设备900的应用软件及各类数据,例如路由方法的计算机程序等,还可以用于暂时地存储已经输出或者将要输出的数据,例如路由方法执行产生的数据等。处理器920在一些可行的实施例中可以中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
109.具体地,处理器920执行路由方法的计算机程序以控制计算机设备900实现路由方法。
110.进一步地,计算机设备900还可以包括系统总线930可以是外设部件互连标准总线(peripheral component interconnect,简称pci)或扩展工业标准结构总线(extended industry standard architecture,简称eisa)等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
111.具体地,计算机设备900还可以包括网络接口940网络接口可选的可以包括有线网络接口和/或无线网络接口(如wi-fi网络接口、蓝牙网络接口等),通常用于在计算机设备900与其他设备之间建立通信连接,例如,计算机设备900与波形显示设备之间的通信连接。
112.在另一些可行的实施例中,计算机设备900还可以包括显示组件(图未示)。显示组件可以是led(light emitting diode,发光二极管)显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示组件也可以适当的称为显示装置或显示单元,用于显示在计算机设备900中处理的信息以及用
于显示可视化的用户界面。
113.图9仅示出了具有组件910-940以及实现路由方法的计算机设备900,本领域技术人员可以理解的是,图9示出的结构并不构成对计算机设备900的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。由于计算机设备900采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再赘述。
114.此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中部分或全部步骤的计算机程序代码指令。
115.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
116.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
技术特征:
1.一种路由方法,其特征在于,所述方法包括:获取动态配置中心发布的路由规则;根据所述路由规则得到最新收件服务实例;判断所述最新收件服务实例与当前收件服务实例是否相同;当所述最新收件服务实例与所述当前收件服务实例相同时,利用所述当前收件服务实例启动邮箱的定时任务;以及,当所述最新收件服务实例与所述当前收件服务实例不同时,利用所述最新收件服务实例启动所述邮箱的定时任务。2.根据权利要求1所述的路由方法,其特征在于,所述根据所述路由规则得到最新收件服务实例,具体包括:判断所述动态配置中心发布的路由规则中包含的若干第一收件服务实例之间是否存在冲突;当所述若干第一收件服务实例之间存在冲突时,根据所述多个第一收件服务实例构建一致性哈希环;根据所述一致性哈希环得到最新收件服务实例。3.根据权利要求1所述的路由方法,其特征在于,在获取动态配置中心发布的路由规则之前,还包括:在注册中心注册收件服务实例;从所述注册中心获取收件服务实例列表,所述收件服务实例列表包括若干收件服务实例。4.根据权利要求3所述的路由方法,其特征在于,在所述获取动态配置中心发布的路由规则之前,还包括:监听所述动态配置中心的服务列表是否更新,所述服务列表包括多个路由规则;当所述服务列表更新时,收件服务实例列表中所有的收件服务实例均获取所述动态配置中心发布的路由规则。5.根据权利要求1所述的路由方法,其特征在于,所述判断所述最新收件服务实例与当前收件服务实例是否相同,具体包括:根据所述最新收件服务实例对邮箱列表进行扫描,所述邮箱列表包括多个邮箱的邮箱信息;根据所述邮箱信息判断最新需要启动定时任务的邮箱与当前需要启动定时任务的邮箱是否相同;当最新需要启动定时任务的邮箱与当前需要启动定时任务的邮箱相同时,判定所述最新收件服务实例与当前收件服务实例相同;当最新需要启动定时任务的邮箱与当前需要启动定时任务的邮箱不同时,判定所述最新收件服务实例与当前收件服务实例不同。6.根据权利要求5所述的路由方法,其特征在于,所述利用所述当前收件服务实例启动所述邮箱的定时任务,具体包括:判断所述邮箱的定时任务是否已经启动;当所述邮箱的定时任务未启动时,启动所述邮箱的定时任务。
7.根据权利要求5所述的路由方法,其特征在于,所述利用所述最新收件服务实例启动所述邮箱的定时任务,具体包括:根据所述邮箱信息判断所述邮箱是否利用所述最新收件服务实例启动定时任务;当所述邮箱不利用所述最新收件服务实例启动定时任务时,判断所述邮箱是否开启了定时任务;当上述邮箱开启了定时任时,关闭所述定时任务;当所述邮箱利用所述最新收件服务实例启动定时任务时,启动所述邮箱的定时任务。8.一种路由系统,其特征在于,所述系统包括:获取模块,用于获取动态配置中心发布的路由规则;接收模块,用于根据所述路由规则得到最新收件服务实例;判断模块,用于判断所述最新收件服务实例与当前收件服务实例是否相同;第一启动模块,用于当所述最新收件服务实例与所述当前收件服务实例相同时,利用所述当前收件服务实例启动邮箱的定时任务;以及,第二启动模块,用于当所述最新收件服务实例与所述当前收件服务实例不同时,利用所述最新收件服务实例启动所述邮箱的定时任务。9.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。10.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
技术总结
本发明实施例公开了一种路由方法,方法包括:获取动态配置中心发布的路由规则;根据路由规则得到最新收件服务实例;判断最新收件服务实例与当前收件服务实例是否相同;当最新收件服务实例与当前收件服务实例相同时,利用当前收件服务实例启动邮箱的定时任务;以及,当最新收件服务实例与当前收件服务实例不同时,利用最新收件服务实例启动邮箱的定时任务。本申请通过获取新的路由规则,实现收件服务实例的动态配置更新,使得邮箱的配置更新更灵活,省时省力。本发明实施例还公开了一种路由系统、计算机可读存储介质以及计算机设备。计算机可读存储介质以及计算机设备。计算机可读存储介质以及计算机设备。
技术研发人员:钟小明
受保护的技术使用者:深圳市小满科技有限公司
技术研发日:2023.03.30
技术公布日:2023/7/25
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
