消息队列的管理方法、管理系统和电子设备与流程

文档序号:29464715发布日期:2022-04-02 02:58阅读:206来源:国知局
消息队列的管理方法、管理系统和电子设备与流程

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.在本技术的一个实施例中,副监听装置用于,主监听装置发送第二监听信息;若副监听装置在未收到主监听装置针对第二监听信息的响应信息,向其他副监听装置发送切换请求信息,切换请求信息用于将副监听装置切换为主监听装置;若副监听装置接收到第二数量的其他副监听装置的响应信息,则将副监听装置切换为主监听装置,第二数量大于第二数量阈值。
36.在本技术的一个实施例中,主监听装置还用于,接收应用程序客户端发送的目标消息的读写请求;获取目标主消息队列对应的端口地址,以及目标消息队列所属的存储服务器的标识信息;将端口地址和标识信息发送给应用程序客户端,以使应用程序客户端在目标消息队列中进行对应的读写操作。
37.本技术第三方面提供一种电子设备,包括存储器与处理器;其中,
38.存储器用于存储程序代码;
39.处理器用于调用程序代码实现上述任一项的消息队列的管理方法。
40.本技术第四方面提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得电子设备执行上述任一项的消息队列的管理方法。
41.本技术第五方面提供一种计算机程序产品,其上存储有计算机程序,计算机程序被处理器执行时,使得电子设备执行上述任一项的消息队列的管理方法。
42.由上述技术方案可以看出,本技术实施例通过设置监听服务器和多个存储服务器;监听服务器包括多个监听装置,存储服务器存储多个业务类型的消息队列,其中,一个业务类型对应多个消息队列,多个消息队列存储在不同的存储服务器中,多个消息队列包括:主消息队列和多个从消息队列。并且通过在多个监听装置中的第一数量的目标监听装置确定第一主消息队列为异常状态时,监听服务器在与第一主消息队属于同一业务类型的多个从消息队列中,确定目标从消息队列,第一数量大于第一数量阈值;监听服务器将目标从消息队列切换为目标主消息队列,目标主消息队列用于响应应用程序客户端的读写操作,实现短消息服务应用场景中异步通讯服务的高可用性和时效性,并提供一套支持交易吞吐量大、时效性强的消息队列的管理系统。
附图说明
43.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1是本技术提供的消息队列的管理方法的应用场景示意图;
45.图2是本技术一实施例提供的消息队列的管理系统的结构框图;
46.图3是本技术一实施例提供的消息队列的管理方法的步骤流程图;
47.图4是本技术另一实施例提供的消息队列的管理方法的步骤流程图;
48.图5是本技术实施例提供的电子设备的结构示意图。
具体实施方式
49.为了使本技术领域的人员更好地理解本技术的方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
50.在相关技术中,消息队列的部署模式分为单实例模式,主从复制模式与分布式集群部署模式。其中,单实例模式部署简单,但是由于只有单个节点提供数据的读写(存取)服务,且不支持数据的持久化和同步备份,因此该单实例部署模式不具备自动容错和恢复功能,适用于数据可靠性要求不高的缓存业务场景。主从复制模式采用多实例主从分离部署模式,相较于单实例模式来书支持数据持久化和读写分离策略,能够实现同时对应用程序客户端提供数据的读写服务。但是主从复制模式虽然采用多实例主从架构,但是该模式需要手动将从队列节点切换为主队列节点来进行消息队列集群的故障恢复,故障恢复的整个过程需要人为参与,并且操作复杂,后期运维难度大。
51.最后,分布式集群部署模式具有横向扩容功能,但是由于在短消息应用场景中消息队列的数量少且扩容需求小,导致分布式集群部署模式的横向扩容功能无法发挥优势,反而并且由于分布式集群部署模式在读写操作时需要一定的计算过程确定要读写的消息队列,反而导致消息队列集群读写效率降低。进一步的,分布式集群部署模式是一种服务器分片技术,整个消息集群视为一个整体,应用程序客户端可以连接任意一个消息队列进行操作,能够很好的解决消息队列集群的横向扩容问题,保证高并发场景下数据读写服务的高效和稳定。分布式集群部署模式主要解决消息队列分布式集群扩展问题,利用一致哈希算法实现高并发场景下数据的分区映射,适用于消息队列类别较多、且分布无要求的应用场景,能够起到很好的负载均衡目的,有效降低运维成本。
52.此外,上述相关技术虽然解决了消息队列的数据备份可能存在的性能问题,但是也引入了新的问题。其中,主从复制消息队列部署方法需要指定主消息队列的ip地址和端口地址,若应用程序客户端所连接的消息队列因故障无法正常读写时,需要用户手动更改应用程序客户端配置,才能完成主从消息队列的切换,人为参与消息队列的故障恢复操作导致运维难度较大。而分布式集群部署方案对于短消息服务场景,由于短消息服务场景下消息队列的类别较少,分布集中且固定,因此使用分布式集群部署方式可能会导致多个类别的消息队列同时散列到同一台服务器上,使消息队列读写速度下降。
53.针对上述问题,本技术实施例提供一种消息队列的管理方法,通过设置监听服务器和多个存储服务器;监听服务器包括多个监听装置,存储服务器存储多个业务类型的消息队列,其中,一个业务类型对应多个消息队列,多个消息队列存储在不同的存储服务器中,多个消息队列包括:主消息队列和多个从消息队列。并且通过在多个监听装置中的第一
数量的目标监听装置确定第一主消息队列为异常状态时,监听服务器在与第一主消息队属于同一业务类型的多个从消息队列中,确定目标从消息队列,第一数量大于第一数量阈值;监听服务器将目标从消息队列切换为目标主消息队列,目标主消息队列用于响应应用程序客户端的读写操作以及其他从消息队列的同步,实现短消息服务应用场景中异步通讯服务的高可用性和时效性,并提供一套支持交易吞吐量大、时效性强的消息队列的管理系统。
54.图1是本技术提供的消息队列的管理方法的一应用场景示意图。如图1所示,该应用场景可以包括:用户客户端11和业务平台12。业务平台12用于给客户端11发送短消息。本技术消息队列的管理方法是应用于短消息服务场景中,使业务平台可以实时高效的给用户客户端11发送短消息。
55.示例性的,业务平台12是金融平台。用户在用户客户端11转账时,需要输入短信验证码才能完成转账业务,则需要业务平台12向用户客户端11发送短信验证码。还比如,用户客户端11在转账成功后,用户的余额发生变化,则需要业务平台12向用户客户端发送余额变化相关信息。
56.下面,通过具体实施例对本技术的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
57.参照图2,为本技术提供的一种消息队列的管理系统22的示意图,消息队列管理系统包括:监听服务器221和多个存储服务器222;监听服务器221包括多个监听装置(监听装置a至监听装置e),存储服务器(存储服务器1至存储服务器4中的每一个)存储多个业务类型的消息队列,其中,一个业务类型对应多个消息队列,多个消息队列存储在不同的存储服务器中,多个消息队列包括:主消息队列和多个从消息队列。
58.示例性的,在图2中,主消息队列a和多个从消息队列a对应同一个业务类型,如动账类,其中动账类是指用户的当前账户的金额发生变化后,应用程序客户端21便会从主消息队列a获取对应的变化信息发送给图1所述的用户客户端11。主消息队列b和多个从消息队列b对应同一个业务类型,如短消息验证类,其中,短消息验证类是指用户需要转账或者消费时,应用程序客户端21便会从主消息队列b获取对应的验证码发送给图1所述的用户客户端11。主消息队列c和多个从消息队列c对应同一个业务类型,如业务查询类,业务查询类如图1所示的用户客户端11向图2所示的应用程序客户端21发送查询请求,应用程序客户端21便会从主消息队列c获取对应的业务信息发送给图1所述的用户客户端11。主消息队列d和多个从消息队列d对应同一个业务类型,如业务推送类,其中,业务推送类是指应用程序客户端定时从主消息队列d中获取业务信息,将该业务信息推送给图1所示的用户客户端11。
59.此外,同一业务类型的不同消息队列分散存储在不同的存储服务器,参照图2,例如,同一业务类型的主消息队列a在存储服务器1。一个从消息队列a在存储服务器2,一个从消息队列a在存储服务器3。进一步的,同一存储服务器中的消息队列对应不同的业务类型。例如,存储服务器1中具有主消息队列a、从消息队列c和从消息队列d,其中,主消息队列a、从消息队列c和从消息队列d对应的为不同的业务类型。
60.在本技术实施例中,参照图2,业务平台12如金融平台,该业务平台12包括:应用程序客户端21和消息队列的管理系统22,其中,应用程序客户端21是运行应用程序的服务器,
用于从消息队列的管理系统22获取对应的信息,发送给图1所示的应用客户端11。
61.参照图3为本技术实施例提供的消息队列的管理方法的步骤流程图,该消息队列的管理方法应用于图2所示的消息队列的管理系统,具体包括如下步骤:
62.s301,在多个监听装置中的第一数量的目标监听装置确定第一主消息队列为异常状态时,监听服务器在与第一主消息队属于同一业务类型的多个从消息队列中,确定目标从消息队列。
63.其中,第一数量大于第一数量阈值。目标从消息队列为处于正常状态的消息队列。第一数量阈值可以为监听装置的总数量的一半。示例性的,在图2中有5个监听装置,则第一数量阈值为2.5。此外,第一数量阈值也可以设置为其他值,在此不加以限定。
64.进一步的,监听服务器中的监听装置的总数量为奇数,示例性的,为5个。
65.在本技术实施例中,每个监听装置都可以监听各个消息队列的工作状态,进而确定各个消息队列是否是异常状态。示例性的,参照图2,若监听装置a至监听装置e中有3个监听装置监听到主消息队列a为异常状态,监听装置a至监听装置e中没有监听装置监听到两个从消息队列a为异常状态,则可以从两个从消息队列a中确定一个从消息队列为目标从消息队列(新的主消息队列)。
66.s302,监听服务器将目标从消息队列切换为目标主消息队列。
67.其中,目标主消息队列用于响应应用程序客户端21的读写操作。
68.此外,目标主消息队列为新的主消息队列。其中,主消息队列是用于数据的读写操作和向从消息队列进行数据的同步。从消息队列为用于数据的读操作,以及作为主消息队列的备份队列,用于对主消息队列的数据进行备份。
69.在本技术实施例提供的消息队列的管理系统实现主消息队列和从消息队列分离并且交替部署,能够支持吞吐量大、时效性高的短消息应用场景。能够实现短消息服务中发送数据的时效性、一致性以及完整性。再者,通过设置监听装置,能够对出现故障的主消息队列进行实时监听,将没有故障的从消息队列切换为新的主消息队列,保证短消息服务的高可用性和高可靠性。
70.在上述实施例的基础上,本技术实施例提供另一种消息队列的管理方法,具体参照图4,该消息队列的管理方法应用于图2所示的消息队列的管理系统,具体包括如下步骤:
71.s401,监听装置向第一主消息队列发送第一监听信息。
72.在本技术实施例中,任意一个监听装置均可以向任意一个消息队列(主消息队列或从消息队列)发送第一监听信息,用于监听消息队列是否为异常状态。该第一监听消息可以是tcp(transmission control protocol,传输控制协议)。
73.此外,第一主消息队列可以是任意一个主消息队列,参照图2,可以是主消息队列a、主消息队列b、主消息队列c或者主消息队列d。
74.s402,若监听装置未接收到第一主消息队列针对第一监听信息的响应信息,监听装置确定第一主消息队列为异常状态。
75.示例性的,参照图2,监听装置a向主消息队列a发送第一监听信息,若主消息队列a并未向监听装置a响应该第一监听信息,则监听装置a可以确定该主消息队列a为异常状态。进一步的,若主消息队列a向监听装置a响应了该第一监听信息,则监听装置a可以确定该主消息队列a为正常状态。
76.再例如,采用上述方式,每个监听装置均可以监听主消息队列的状态,若监听装置a监听到主消息队列a为异常状态,监听装置b监听到主消息队列a为异常状态,监听装置c监听到主消息队列a为正常状态,监听装置d监听到主消息队列a为异常状态,监听装置e监听到主消息队列a为异常状态。
77.s403,主监听装置接收各个副监听装置发送的第一主消息队列的异常信息。
78.其中,多个监听装置包括:主监听装置和副监听装置。副监听装置用于在确定第一主消息队列为异常状态时向主监听装置发送异常信息。其中,多个监听装置中有一个主监听装置,其他均为副监听装置。
79.示例性的,参照图2,监听装置a为主监听装置,监听装置b至监听装置e为副监听装置。
80.在本技术实施例中,主监听装置用于与应用程序客户端21进行通信,以及切换主从消息队列。
81.此外,若副监听装置监听到对应的主消息队列为异常状态,则可以向主监听装置发送该主消息对象的异常信息,异常信息用于表示对应副监听装置监听到主消息队列为异常状态。
82.示例性的,若监听装置b监听到主消息队列a为异常状态,则监听装置b向主监听装置(监听装置a)发送异常信息,该异常信息表示监听装置b监听到主消息队列a异常。
83.s404,主监听装置根据异常信息,确定目标监听装置的第一数量。
84.其中,目标监听装置为确定第一主消息队列为异常状态的监听装置。
85.示例性的,在图2中,若监听装置a监听到主消息队列a为异常状态,监听装置b监听到主消息队列a为异常状态,监听装置c监听到主消息队列a为正常状态,监听装置d监听到主消息队列a为异常状态,监听装置e监听到主消息队列a为异常状态。则监听装置b、监听装置d和监听装置e向监听装置a(主监听装置)发送了异常信息,主监听装置(监听装置a)自身也监听到主消息队列a为异常状态。则目标监听装置为:监听装置a、监听装置b、监听装置d和监听装置e。则主监听装置(监听装置a)根据接收到异常信息(3条)和自身监听到的主消息队列为异常状态,确定第一数量为4。
86.可以理解,第一数量为主监听装置接收到异常信息的第二数量与主监听装置监听到第一主消息队列的状态(异常状态或正常状态)确定。若主监听装置监听到第一主消息队列的状态为异常状态,则第一数量为第二数量加1,若主监听装置监听到第一主消息队列的状态为正常状态,则第一数量等于第二数量。
87.s405,在多个监听装置中的第一数量的目标监听装置确定第一主消息队列为异常状态时,监听服务器在与第一主消息队属于同一业务类型的多个从消息队列中,确定目标从消息队列。
88.在本技术实施例中,具体为主监听装置在多个从消息队列中确定目标从消息队列。其中,目标从消息队列为多个从消息队列中处于正常状态的从消息队列。即在本技术实施例中,可以先筛除处于异常状态的从消息队列,在处于正常状态的从消息队列中确定一个未目标从消息队列。
89.示例性的,参照图2,对于两个从消息队列a,若监听装置a至监听装置e中有大于第一数量阈值的数量的监听装置确定存储服务器2中的从消息队列a为异常状态,则可以确定
存储服务器3中的从消息队列a为目标从消息队列。
90.一种可选方式中,监听服务器在与第一主消息队属于同一业务类型的多个从消息队列中,确定目标从消息队列,包括:监听服务器确定与第一主队列属于同一业务类型的多个从消息队列的预设优先级;监听服务器确定预设优先级最高的从消息队列为目标从消息队列。
91.示例性的,参照图2,若监听服务器221确定两个从消息队列a均为正常状态。则可以确定两个从消息队列a的预设优先级。若存储服务器2中的从消息队列a的预设优先级大于存储服务器3中的从消息队列a的预设优先级,则将存储服务器3中的从消息队列a确定为目标从消息队列。
92.在本技术实施例中,预设优先级较高的从消息队列用于数据的读操作,以及数据的持久化操作,可以在消息队列的管理系统断电等情况下较好的保存消息队列中的数据,以便后续的恢复操作。因此,当主消息队列出现故障时,可以首先将预设优先级较高的从消息队列作为新的主消息队列。
93.另一种可选方式中,监听服务器在与第一主消息队属于同一业务类型的多个从消息队列中,确定目标从消息队列,包括:监听服务器确定与第一主队列属于同一业务类型的多个从消息队列的复制偏移量;监听服务器确定复制偏移量最高的从消息队列为目标从消息队列。
94.在本技术实施例中,可以在没有预先设置各个从消息队列的预设优先级的情况下,或者多个从消息队列的预设优先级相同的情况下,可以根据从消息队列的复制偏移量确定目标从消息队列。其中,复制偏移量越大表示从消息队列中同步的数据越新,该从消息队列被切换为主消息队列的可能性越大。
95.进一步,若各个从消息队列对应的复制偏移量大小一致,则可以根据各个从消息队列所属的存储服务器的id(身份标识号)的大小进行确定,id越大表示对应的从消息队列所属的存储服务器越新,因此可以将该从消息队列切换为主消息队列的可能性越大。
96.在本技术实施例中,上述方式可以是层层递进的关系,先在多个从消息队列中确定处于正常状态的从消息队列,然后在处于正常状态的从消息队列中确定预设优先级较高的从消息队列,若预设优先级较高的从消息队列有多个时,且该多个预设优先级较高的从消息队列的预设优先级相同,则从该多个预设优先级较高的从消息队列确定复制偏移量较大的从消息队列,若复制偏移量较大的从消息队列有多个,且该多个复制偏移量较大的从消息队列的复制偏移量相同时,在该多个复制偏移量较大的从消息队列中确定所属的存储服务器的id较大的对应的从消息队列为目标从消息队列。进而确定出一个最佳的目标从消息队列。
97.s406,监听服务器将目标从消息队列切换为目标主消息队列。
98.该步骤的具体实现过程参照步骤s302,在此不加以限定。需要补充说明的是,将目标从消息队列切换为目标主消息队列的执行主体可以是主监听装置。
99.s407,副监听装置向主监听装置发送第二监听信息。
100.示例性的,各个副监听装置(监听装置b至监听装置e)分别向监听装置a(主监听装置)发送第二监听信息。
101.s408,若副监听装置在未收到主监听装置针对第二监听信息的响应信息,副监听
装置向其他副监听装置发送切换请求信息,切换请求信息用于将副监听装置切换为主监听装置。
102.示例性的,若监听装置b未收到监听装置a的响应信息,则监听装置b可以向监听装置c、监听装置d和监听装置e分别发送切换请求信息。其中,监听装置c、监听装置d和监听装置e在未收到监听装置a的响应信息,也会向自身以外的其他副监听装置发送切换请求信息。
103.s409,若副监听装置接收到第二数量的其他副监听装置的响应信息,则将副监听装置切换为主监听装置。
104.其中,第二数量大于第二数量阈值。此外,其他副监听装置向该副监听装置发送的响应信息可以是未接收到主监听装置针对第二监听信息的情况下发送的。
105.示例性的,若监听装置b未收到监听装置a的响应信息,则监听装置b可以向监听装置c、监听装置d和监听装置e分别发送切换请求信息,监听装置c也未收到监听装置a的响应信息,并且接收到了监听装置b的切换请求信息后,则向监听装置b发送针对该切换请求信息的响应信息。
106.此外,若监听装置c未收到监听装置a的响应信息后,向其他监听装置也发送了切换请求信息之后,才接收到监听装置b发送的针对该切换请求信息,则监听装置c可以不向监听装置b发送响应信息。
107.该步骤的目的是确定最早发现主监听装置异常的副监听装置,将该副监听装置作为新的主监听装置,进行执行主监听装置对应的功能。
108.在本技术实施例中,第二数量阈值可以是监听装置总数量的一半减1。
109.s410,主监听装置接收应用程序客户端发送的目标消息的读写请求。
110.在本技术实施例中,主监听装置负责在主消息队列为异常状态时,如宕机时,完成对应从消息队列切换为主消息队列,进而实现消息队列故障的自动恢复,能够有效降低短消息服务的运营成本,提高整体消息队列的管理系统的效率。
111.s411,主监听装置获取目标主消息队列对应的端口地址,以及目标消息队列所属的存储服务器的标识信息。
112.在本技术实施例中,存储服务器的标识信息是指ip(互联网协议地址)。每个消息队列对应有一个端口地址。其中,主监听装置可以获取到任意一个消息队列的端口地址和存储服务器的标识信息,根据端口地址和标识信息可以定位到对应的消息队列。
113.s412,主监听装置将端口地址和标识信息发送给应用程序客户端,以使应用程序客户端在目标消息队列中进行对应的读写操作。
114.在本技术实施例中,将端口地址和标识信息发送给应用程序客户端,可以使应用程序客户端能够连接到正确的主消息队列,实现数据读写服务的稳定。
115.在本技术实施例中,应用程序客户端可以连接监听服务器中的任何一个监听装置获取存储服务器中主消息队列和从消息队列的状态(异常状态或正常状态)。应用程序客户端也可以连接主监听装置获取存储服务器中主消息队列和从消息队列的状态,当主消息队列出故障下线时,能够及时获取存储服务器中出现问题的主消息队列的异常状态,从而完成主从消息队列的自动故障切换操作,并向客户端应用程序发送故障恢复后新的主消息队列的端口地址,和所属的存储服务器的ip,保障客户端应用程序每次都能够连接到状态正
常的主消息队列。监听装置以集群方式不仅能够实现对主从消息队列的状态的及时监控,而且也能够保障监听服务器的高可用性。当监听服务器中的一个监听装置由于故障下线后,其他监听装置依旧能够正常工作,进而保证消息队列的管理系统稳定工作。
116.此外,本技术实施例中的消息队列的管理系统对于业务类型的数量比较固定且集中的短消息业务,能够支持交易吞吐量大、峰值高的短消息发送业务场景,整体提升消息队列的管理系统效率。
117.参照图2,为本技术实施例提供的一种消息队列的管理系统22的示意图,消息队列的管理系统22包括:
118.监听服务器221和多个存储服务器222;监听服务器221包括多个监听装置,存储服务器(存储服务器1至存储服务器4任意一个)存储多个业务类型的消息队列,其中,一个业务类型对应多个消息队列,多个消息队列存储在不同的存储服务器中,多个消息队列包括:主消息队列和多个从消息队列;
119.监听服务器221:用于在多个监听装置中的第一数量的目标监听装置确定第一主消息队列为异常状态时,在与第一主消息队属于同一业务类型的多个从消息队列中,确定目标从消息队列,第一数量大于第一数量阈值;监听服务器将目标从消息队列切换为目标主消息队列,目标主消息队列用于响应应用程序客户端的读写操作。
120.在本技术的一个实施例中,监听服务器221具体用于:确定与第一主队列属于同一业务类型的多个从消息队列的预设优先级;确定预设优先级最高的从消息队列为目标从消息队列。
121.在本技术的一个实施例中,监听服务器具221体用于:确定与第一主队列属于同一业务类型的多个从消息队列的复制偏移量;确定复制偏移量最高的从消息队列为目标从消息队列。
122.在本技术的一个实施例中,监听装置用于,向第一主消息队列发送第一监听信息;若监听装置未接收到第一主消息队列针对第一监听信息的响应信息,确定第一主消息队列为异常状态。
123.在本技术的一个实施例中,多个监听装置包括:主监听装置和副监听装置,主监听装置用于,接收各个副监听装置发送的第一主消息队列的异常信息,副监听装置用于在确定第一主消息队列为异常状态时向主监听装置发送异常信息;
124.主监听装置还用于,根据异常信息,确定目标监听装置的第一数量,其中,目标监听装置为确定第一主消息队列为异常状态的监听装置。
125.在本技术的一个实施例中,副监听装置用于,主监听装置发送第二监听信息;若副监听装置在未收到主监听装置针对第二监听信息的响应信息,向其他副监听装置发送切换请求信息,切换请求信息用于将副监听装置切换为主监听装置;若副监听装置接收到第二数量的其他副监听装置的响应信息,则将副监听装置切换为主监听装置,第二数量大于第二数量阈值。
126.在本技术的一个实施例中,主监听装置还用于,接收应用程序客户端发送的目标消息的读写请求;获取目标主消息队列对应的端口地址,以及目标消息队列所属的存储服务器的标识信息;将端口地址和标识信息发送给应用程序客户端,以使应用程序客户端在目标消息队列中进行对应的读写操作。
127.具体的,该消息队列的管理系统的各个模块的具体工作内容,请参照上述消息队列的管理方法的实施例内容,此处不再赘述。
128.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
129.例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,asic),或,一个或多个微处理器(digital signal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。
130.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
131.图5为本技术实施例提供的电子设备的结构示意图。其中,该电子设备可以具体为银行服务器或者区块链平台。如图5所示,该电子设备可以包括:处理器51、存储器52、通信接口53和系统总线54。其中,存储器52和通信接口53通过系统总线54与处理器51连接并完成相互间的通信,存储器52用于存储计算机执行指令,通信接口53用于和其他设备进行通信,处理器51执行上述计算机执行指令时实现如上述实施例的方案。
132.该图5中提到的系统总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用
于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(random access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
133.上述的处理器可以是通用处理器,包括中央处理器cpu、网络处理器(network processor,np)等;还可以是数字信号处理器dsp、专用集成电路asic、现场可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
134.可选的,本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时,使得电子设备执行如上述图2至图3所示实施例的方法。
135.可选的,本技术实施例还提供一种计算机程序产品,其上存储有计算机程序,计算机程序被处理器执行时,使得电子设备执行上述图2至图3所示实施例的方法。
136.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。
137.可以理解的是,在本技术的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本技术的实施例的范围。在本技术的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术的实施例的实施过程构成任何限定。
138.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1