CN105930339B - 提高消息传输可靠性的方法和系统 - Google Patents

提高消息传输可靠性的方法和系统 Download PDF

Info

Publication number
CN105930339B
CN105930339B CN201610201690.6A CN201610201690A CN105930339B CN 105930339 B CN105930339 B CN 105930339B CN 201610201690 A CN201610201690 A CN 201610201690A CN 105930339 B CN105930339 B CN 105930339B
Authority
CN
China
Prior art keywords
message
database
database systems
systems
specified
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201610201690.6A
Other languages
English (en)
Other versions
CN105930339A (zh
Inventor
赵阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201610201690.6A priority Critical patent/CN105930339B/zh
Publication of CN105930339A publication Critical patent/CN105930339A/zh
Application granted granted Critical
Publication of CN105930339B publication Critical patent/CN105930339B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本发明公开了一种提高消息传输可靠性的方法和系统,其中,适用于将消息发送方的消息传输至多个消息接收方,所述方法包括:消息发送方将消息发送至数据库系统;各消息接收方从所述数据库系统获取消息。该技术方案以数据库系统为媒介来实现消息的传输,具体地,由消息发送方将消息发送至数据库系统,再由各消息接收方从所述数据库系统获取消息。由于数据库系统的稳定性,保证了消息传输的可靠,可以尽量避免出现消息丢失、不能及时获取消息等影响通信效率和效果的情况,提高了用户体验。

Description

提高消息传输可靠性的方法和系统
技术领域
本发明涉及数据库技术领域,具体涉及一种提高消息传输可靠性的方法和系统。
背景技术
在分布式系统的层级间的消息传输过程中,消息传输的可靠性经常很难得到保证。例如由于层级间的网络抖动,导致没有收到消息或延迟收到消息,这样消息的发出方并不知情;下一层级没有返回结果或延迟返回结果,上一层也并不能感知到,可能导致上一层级接收到的结果不完整。现有技术中,往往采取增大消息发送/接收的等待时间的技术方案,但效果并不理想。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的提高消息传输可靠性的方法和系统。
依据本发明的一个方面,提供了一种提高消息传输可靠性的方法,其中,适用于将消息发送方的消息传输至多个消息接收方,该方法包括:
消息发送方将消息发送至数据库系统;
各消息接收方从所述数据库系统获取消息。
可选地,所述数据库系统包括一个主数据库和多个从数据库;
所述消息发送方将消息发送至数据库系统为:所述消息发送方将消息发送至数据库系统的主数据库;
所述主数据库将消息同步到各从数据库;
各消息接收方从所述数据库系统获取消息包括:各消息接收方从所述数据库系统的各从数据库获取消息。
可选地,所述各消息接收方从所述数据库系统的各从数据库获取消息包括:
每个消息接收方向数据库系统订阅消息;
当该消息接收方订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消息接收方指定一个从数据库;
该消息接收方从指定的从数据库获取消息。
可选地,所述数据库系统根据网络连接状况为该消息接收方指定一个从数据库进一步包括:
数据库系统根据网络连接状况选择一个或多个从数据库;当选择一个从数据库时,为该消息接收方指定该选择的从数据库;当选择多个从数据库时,根据各从数据库的访问量为该消息接收方指定一个从数据库。
可选地,所述消息发送方是SaltStack系统中的主控节点;
所述消息接收方是SaltStack系统中的Syndic节点。
可选地,所述消息发送方将消息发送至数据库系统包括:SaltStack系统中的主控节点启动一个生产者进程,由该生产者进程将消息发布到数据库系统的主数据库;
各消息接收方从所述数据库系统获取消息包括:SaltStack系统中的每个Syndic节点启动一个消费者进程,由该消费者进程向数据库系统订阅消息;当订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消费者进程指定一个从数据库;该消费者进程从指定的从数据库获取消息并将获取的消息发给对应的Syndic节点。
可选地,该方法进一步包括:Syndic节点将收到的消息下发到对应的多个Minion节点。
依据本发明的另一方面,提供了一种提高消息传输可靠性的系统,其中,该系统包括:消息发送装置、数据库系统和多个消息接收装置;
消息发送装置,适于将消息发送至数据库系统;
数据库系统,适于保存消息;
各消息接收装置,适于从所述数据库系统获取消息。
可选地,所述数据库系统包括一个主数据库和多个从数据库;
所述消息发送装置,适于将消息发送至数据库系统的主数据库;
所述主数据库将消息同步到各从数据库;
所述各消息接收装置,适于从所述数据库系统的各从数据库获取消息。
可选地,每个消息接收装置,适于向数据库系统订阅消息;
数据库系统,适于当消息接收装置订阅的消息到达时,根据网络连接状况为该消息接收装置指定一个从数据库;
该消息接收装置,从指定的从数据库获取消息。
可选地,所述数据库系统,适于根据网络连接状况选择一个或多个从数据库;当选择一个从数据库时,为该消息接收方指定该选择的从数据库;当选择多个从数据库时,根据各从数据库的访问量为该消息接收方指定一个从数据库。
可选地,所述消息发送装置是SaltStack系统中的主控节点;
所述消息接收装置是SaltStack系统中的Syndic节点。
可选地,SaltStack系统中的主控节点启动一个生产者进程,由该生产者进程将消息发布到数据库系统的主数据库;
SaltStack系统中的每个Syndic节点启动一个消费者进程,由该消费者进程向数据库系统订阅消息;当订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消费者进程指定一个从数据库;该消费者进程从指定的从数据库获取消息并将获取的消息发给对应的Syndic节点。
可选地,Syndic节点进一步适于将收到的消息下发到对应的多个Minion节点。
由上述可知,本发明的技术方案,以数据库系统为媒介来实现消息的传输,具体地,由消息发送方将消息发送至数据库系统,再由各消息接收方从所述数据库系统获取消息。由于数据库系统的稳定性,保证了消息传输的可靠,可以尽量避免出现消息丢失、不能及时获取消息等影响通信效率和效果的情况,提高了用户体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种提高消息传输可靠性的方法的流程示意图;
图2示出了SaltStack系统的架构示意图;
图3示出了根据本发明一个实施例的一种提高消息传输可靠性的系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种提高消息传输可靠性的方法的流程示意图,其中,适用于将消息发送方的消息传输至多个消息接收方,如图1所示,该方法包括:
步骤S110,消息发送方将消息发送至数据库系统。
步骤S120,各消息接收方从数据库系统获取消息。
具体地,消息为序列化后的数据串。
可见,图1所示的方法,以数据库系统为媒介来实现消息的传输,具体地,由消息发送方将消息发送至数据库系统,再由各消息接收方从数据库系统获取消息。由于数据库系统的稳定性,保证了消息传输的可靠,可以尽量避免出现消息丢失、不能及时获取消息等影响通信效率和效果的情况,提高了用户体验。
在本发明的一个实施例中,图1所示的方法中,数据库系统包括一个主数据库和多个从数据库;消息发送方将消息发送至数据库系统为:消息发送方将消息发送至数据库系统的主数据库;主数据库将消息同步到各从数据库;各消息接收方从数据库系统获取消息包括:各消息接收方从数据库系统的各从数据库获取消息。
优选地,各数据库可以架设在不同的服务器中,每个数据库具有单独的IP地址用于访问。主从数据库间会对存入的消息进行同步。为保证消息的时效性,应该在消息存入主数据库时立即将消息同步到各从数据库。消息本身可能也存在有效期,由于数据库间的同步速率快,因此相对于消息的有效期来说可以忽略不计,也可以在消息存入数据库后,重置消息的有效期。
在本发明的一个实施例中,上述方法中,各消息接收方从数据库系统的各从数据库获取消息包括:每个消息接收方向数据库系统订阅消息;当该消息接收方订阅的消息到达数据库系统时,数据库系统根据网络连接为该消息接收方指定一个从数据库;该消息接收方从指定的从数据库获取消息。
在本发明的一个实施例中,所述数据库系统根据网络连接状况为该消息接收方指定一个从数据库进一步包括:数据库系统根据网络连接状况选择一个或多个从数据库;当选择一个从数据库时,为该消息接收方指定该选择的从数据库;当选择多个从数据库时,根据各从数据库的访问量为该消息接收方指定一个从数据库。
例如,当消息接收方和多个从数据库之间的网络连接状态均为良好时,数据库系统可以为消息接收方任意指定一个从数据库;或者,数据库系统也可以根据各从数据库的访问量为该消息接收方指定一个从数据库,即根据网络连接状况从网络连接状况良好的多个从数据库中为该消息接收方指定一个从数据库。在本发明的一个实施例中,当为消息接收方指定了一个从数据库后,如果该指定的从数据库与消息接收方之间的网络连接状况一直保持良好,则该消息接收方可以一直或在一段时间内都从该从数据库获取消息,以避免消息接收方无故频繁更换从数据库所带来的资源浪费。当该指定的从数据库与消息接收方之间的网络连接发生抖动或者故障时,数据库系统可以重新为该消息接收方指定一个可连接的从数据库。
可以看出,各消息接收方向数据库系统订阅消息与消息发送方将消息发送至数据库系统是完全独立的。这样并不直接建立各消息接收方与消息发送方之间的通信,而是完全以数据库系统来实现,具体地,消息的层级间传输通过数据库系统的主从同步来完成,而消息接收方从数据库系统的各从数据库获取消息,以及消息发送方将消息发送至数据库系统的过程基本不会出现消息丢失的情况,即使出现,由于相应操作均是对数据库的访问,也易于纠错。
在本发明的一个实施例中,上述方法中,消息发送方是SaltStack系统中的主控节点;消息接收方是SaltStack系统中的Syndic节点。
图2示出了SaltStack系统的架构示意图。如图所示,SaltStack系统分为主控节点(Master)、Syndic节点和Minion节点三个层级。则在本发明的一个实施例中,上述方法中,消息发送方将消息发送至数据库系统包括:SaltStack系统中的主控节点启动一个生产者进程,由该生产者进程将消息发布到数据库系统的主数据库;各消息接收方从数据库系统获取消息包括:SaltStack系统中的每个Syndic节点启动一个消费者进程,由该消费者进程向数据库系统订阅消息;当订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消费者进程指定一个从数据库;该消费者进程从指定的从数据库获取消息并将获取的消息发给对应的Syndic节点。
现有技术中,SaltStack系统使用Zeromq消息队列来实现消息传输,根据统计,主控节点的服务器侧使用salt命令行下发远程执行命令,运行5次,每次10w消息,每条消息500byte左右,在Syndic节点的客户端侧接收消息,最后消息丢失大概500条。在本实施例中,当主控节点有消息需要下发给Syndic节点时,主控节点启动一个生产者Producer进程,由Producer进程将消息发布到数据库系统的主数据库;与之独立的,SaltStack系统中的每个Syndic节点启动一个消费者Consumer进程,由Consumer进程向数据库系统订阅消息。Consumer进程会一直阻塞等待消息,一旦有消息,就会订阅(Subscribe)到消息;Consumer进程将收到的消息再次发给本机的Syndic节点。以上文同样的消息量进行测试,未丢失任何一条消息。
在本发明的一个实施例中,上述方法进一步包括:Syndic节点将收到的消息下发到对应的多个Minion节点。
图3示出了根据本发明一个实施例的一种提高消息传输可靠性的系统的结构示意图,如图3所示,提高消息传输可靠性的系统300包括:消息发送装置310、数据库系统320和多个消息接收装置330;
消息发送装置330,适于将消息发送至数据库系统320。
数据库系统320,适于保存消息。
各消息接收装置330,适于从数据库系统320获取消息。
具体地,消息为序列化后的数据串。
可见,图3所示的装置,以数据库系统为媒介来实现消息的传输,具体地,由消息发送方将消息发送至数据库系统,再由各消息接收方从数据库系统获取消息。由于数据库系统的稳定性,保证了消息传输的可靠,可以尽量避免出现消息丢失、不能及时获取消息等影响通信效率和效果的情况,提高了用户体验。
在本发明的一个实施例中,图3所示的系统中,数据库系统包括一个主数据库和多个从数据库;消息发送装置,适于将消息发送至数据库系统的主数据库;主数据库将消息同步到各从数据库;各消息接收装置,适于从数据库系统的各从数据库获取消息。
各数据库可以架设在不同的服务器中,每个数据库具有单独的IP地址用于访问。主从数据库间会对存入的消息进行同步。为保证消息的时效性,应该在消息存入主数据库时立即将消息同步到各从数据库。消息本身可能也存在有效期,由于数据库间的同步速率快,因此相对于消息的有效期来说可以忽略不计,也可以在消息存入数据库后,重置消息的有效期。
在本发明的一个实施例中,上述系统中,每个消息接收装置,适于向数据库系统订阅消息;数据库系统,适于当消息接收装置订阅的消息到达时,根据网络连接状况为该消息接收装置指定一个从数据库;该消息接收装置,从指定的从数据库获取消息。
在本发明的一个实施例中,数据库系统根据网络连接状况为该消息接收装置指定一个从数据库进一步包括:数据库系统根据网络连接状况选择一个或多个从数据库;当选择一个从数据库时,为该消息接收装置指定该选择的从数据库;当选择多个从数据库时,根据各从数据库的访问量为该消息接收装置指定一个从数据库。
可以看出,各消息接收方向数据库系统订阅消息与消息发送方将消息发送至数据库系统是完全独立的。这样并不直接建立各消息接收方与消息发送方之间的通信,而是完全以数据库系统来实现,具体地,消息的层级间传输通过数据库系统的主从同步来完成,而消息接收方从数据库系统的各从数据库获取消息,以及消息发送方将消息发送至数据库系统的过程基本不会出现消息丢失的情况,即使出现,由于相应操作均是对数据库的访问,也易于纠错。
在本发明的一个实施例中,上述系统中,数据库系统,适于可选地,所述数据库系统,适于根据网络连接状况选择一个或多个从数据库;当选择一个从数据库时,为该消息接收装置指定该选择的从数据库;当选择多个从数据库时,根据各从数据库的访问量为该消息接收装置指定一个从数据库。
例如,当消息接收装置和多个从数据库之间的网络连接状态均为良好时,数据库系统可以为消息接收装置任意指定一个从数据库;或者,数据库系统也可以根据各从数据库的访问量为该消息接收装置指定一个从数据库,即根据网络连接状况从网络连接状况良好的多个从数据库中为该消息接收装置指定一个从数据库。在本发明的一个实施例中,当为消息接收装置指定了一个从数据库后,如果该指定的从数据库与消息接收装置之间的网络连接状况一直保持良好,则该消息接收装置可以一直或在一段时间内都从该从数据库获取消息,以避免消息接收装置无故频繁更换从数据库所带来的资源浪费。当该指定的从数据库与消息接收装置之间的网络连接发生抖动或者故障时,数据库系统可以重新为该消息接收装置指定一个可连接的从数据库。
在本发明的一个实施例中,上述系统中,消息发送装置是SaltStack系统中的主控节点;消息接收装置是SaltStack系统中的Syndic节点。
在本发明的一个实施例中,上述系统中,SaltStack系统中的主控节点启动一个生产者进程,由该生产者进程将消息发布到数据库系统的主数据库;SaltStack系统中的每个Syndic节点启动一个消费者进程,由该消费者进程向数据库系统订阅消息;当订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消费者进程指定一个从数据库;该消费者进程从指定的从数据库获取消息并将获取的消息发给对应的Syndic节点。
现有技术中,SaltStack系统使用Zeromq消息队列来实现消息传输,根据统计,主控节点的服务器侧使用salt命令行下发远程执行命令,运行5次,每次10w消息,每条消息500byte左右,在Syndic节点的客户端侧接收消息,最后消息丢失大概500条。在本实施例中,当主控节点有消息需要下发给Syndic节点时,主控节点启动一个生产者Producer进程,由Producer进程将消息发布到数据库系统的主数据库;与之独立的,SaltStack系统中的每个Syndic节点启动一个消费者Consumer进程,由Consumer进程向数据库系统订阅消息。Consumer进程会一直阻塞等待消息,一旦有消息,就会订阅(Subscribe)到消息;Consumer进程将收到的消息再次发给本机的Syndic节点。以上文同样的消息量进行测试,未丢失任何一条消息。
在本发明的一个实施例中,上述系统中,Syndic节点进一步适于将收到的消息下发到对应的多个Minion节点。
综上所述,本发明的技术方案,以数据库系统为媒介来实现消息的传输,具体地,由消息发送方将消息发送至数据库系统,再由各消息接收方从数据库系统获取消息。由于数据库系统的稳定性,保证了消息传输的可靠,可以尽量避免出现消息丢失、不能及时获取消息等影响通信效率和效果的情况,提高了用户体验。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的提高消息传输可靠性的系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种提高消息传输可靠性的方法,其中,适用于将消息发送方的消息传输至多个消息接收方,该方法包括:
消息发送方将消息发送至数据库系统;
各消息接收方从所述数据库系统获取消息。
A2、如A1所述的方法,其中,
所述数据库系统包括一个主数据库和多个从数据库;
所述消息发送方将消息发送至数据库系统为:所述消息发送方将消息发送至数据库系统的主数据库;
所述主数据库将消息同步到各从数据库;
各消息接收方从所述数据库系统获取消息包括:各消息接收方从所述数据库系统的各从数据库获取消息。
A3、如A2所述的方法,其中,所述各消息接收方从所述数据库系统的各从数据库获取消息包括:
每个消息接收方向数据库系统订阅消息;
当该消息接收方订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消息接收方指定一个从数据库;
该消息接收方从指定的从数据库获取消息。
A4、如A3所述的方法,其中,所述数据库系统根据网络连接状况为该消息接收方指定一个从数据库进一步包括:
数据库系统根据网络连接状况选择一个或多个从数据库;当选择一个从数据库时,为该消息接收方指定该选择的从数据库;当选择多个从数据库时,根据各从数据库的访问量为该消息接收方指定一个从数据库。
A5、如A1-A4中任一项所述的方法,其中,
所述消息发送方是SaltStack系统中的主控节点;
所述消息接收方是SaltStack系统中的Syndic节点。
A6、如A5所述的方法,其中,
所述消息发送方将消息发送至数据库系统包括:SaltStack系统中的主控节点启动一个生产者进程,由该生产者进程将消息发布到数据库系统的主数据库;
各消息接收方从所述数据库系统获取消息包括:SaltStack系统中的每个Syndic节点启动一个消费者进程,由该消费者进程向数据库系统订阅消息;当订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消费者进程指定一个从数据库;该消费者进程从指定的从数据库获取消息并将获取的消息发给对应的Syndic节点。
A7、如A6所述的方法,其中,该方法进一步包括:Syndic节点将收到的消息下发到对应的多个Minion节点。
本发明还公开了B8、一种提高消息传输可靠性的系统,其中,该系统包括:消息发送装置、数据库系统和多个消息接收装置;
消息发送装置,适于将消息发送至数据库系统;
数据库系统,适于保存消息;
各消息接收装置,适于从所述数据库系统获取消息。
B9、如B8所述的系统,其中,
所述数据库系统包括一个主数据库和多个从数据库;
所述消息发送装置,适于将消息发送至数据库系统的主数据库;
所述主数据库将消息同步到各从数据库;
所述各消息接收装置,适于从所述数据库系统的各从数据库获取消息。
B10、如B9所述的系统,其中,
每个消息接收装置,适于向数据库系统订阅消息;
数据库系统,适于当消息接收装置订阅的消息到达时,根据负网络连接状况为该消息接收装置指定一个从数据库;
该消息接收装置,从指定的从数据库获取消息。
B11、如B10所述的系统,其中,
所述数据库系统,适于根据网络连接状况选择一个或多个从数据库;当选择一个从数据库时,为该消息接收方指定该选择的从数据库;当选择多个从数据库时,根据各从数据库的访问量为该消息接收方指定一个从数据库。
B12、如B8-B11中任一项所述的系统,其中,
所述消息发送装置是SaltStack系统中的主控节点;
所述消息接收装置是SaltStack系统中的Syndic节点。
B13、如B12所述的系统,其中,
SaltStack系统中的主控节点启动一个生产者进程,由该生产者进程将消息发布到数据库系统的主数据库;
SaltStack系统中的每个Syndic节点启动一个消费者进程,由该消费者进程向数据库系统订阅消息;当订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消费者进程指定一个从数据库;该消费者进程从指定的从数据库获取消息并将获取的消息发给对应的Syndic节点。
B14、如B13所述的系统,其中,
Syndic节点进一步适于将收到的消息下发到对应的多个Minion节点。

Claims (10)

1.一种提高消息传输可靠性的方法,其中,适用于将消息发送方的消息传输至多个消息接收方,该方法包括:
消息发送方将消息发送至数据库系统;
各消息接收方从所述数据库系统获取消息;
其中,所述消息发送方是SaltStack系统中的主控节点;所述消息接收方是SaltStack系统中的Syndic节点;
所述消息发送方将消息发送至数据库系统包括:SaltStack系统中的主控节点启动一个生产者进程,由该生产者进程将消息发布到数据库系统的主数据库;
各消息接收方从所述数据库系统获取消息包括:SaltStack系统中的每个Syndic节点启动一个消费者进程,由该消费者进程向数据库系统订阅消息;当订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消费者进程指定一个从数据库;该消费者进程从指定的从数据库获取消息并将获取的消息发给对应的Syndic节点。
2.如权利要求1所述的方法,其中,
所述数据库系统包括一个主数据库和多个从数据库;
所述消息发送方将消息发送至数据库系统为:所述消息发送方将消息发送至数据库系统的主数据库;
所述主数据库将消息同步到各从数据库;
各消息接收方从所述数据库系统获取消息包括:各消息接收方从所述数据库系统的各从数据库获取消息。
3.如权利要求2所述的方法,其中,所述各消息接收方从所述数据库系统的各从数据库获取消息包括:
每个消息接收方向数据库系统订阅消息;
当该消息接收方订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消息接收方指定一个从数据库;
该消息接收方从指定的从数据库获取消息。
4.如权利要求3所述的方法,其中,所述数据库系统根据网络连接状况为该消息接收方指定一个从数据库进一步包括:
数据库系统根据网络连接状况选择一个或多个从数据库;当选择一个从数据库时,为该消息接收方指定该选择的从数据库;当选择多个从数据库时,根据各从数据库的访问量为该消息接收方指定一个从数据库。
5.如权利要求1所述的方法,其中,该方法进一步包括:Syndic节点将收到的消息下发到对应的多个Minion节点。
6.一种提高消息传输可靠性的系统,其中,该系统包括:消息发送装置、数据库系统和多个消息接收装置;
消息发送装置,适于将消息发送至数据库系统;
数据库系统,适于保存消息;
各消息接收装置,适于从所述数据库系统获取消息;
其中,所述消息发送装置是SaltStack系统中的主控节点;所述消息接收装置是SaltStack系统中的Syndic节点;
SaltStack系统中的主控节点启动一个生产者进程,由该生产者进程将消息发布到数据库系统的主数据库;
SaltStack系统中的每个Syndic节点启动一个消费者进程,由该消费者进程向数据库系统订阅消息;当订阅的消息到达数据库系统时,数据库系统根据网络连接状况为该消费者进程指定一个从数据库;该消费者进程从指定的从数据库获取消息并将获取的消息发给对应的Syndic节点。
7.如权利要求6所述的系统,其中,
所述数据库系统包括一个主数据库和多个从数据库;
所述消息发送装置,适于将消息发送至数据库系统的主数据库;
所述主数据库将消息同步到各从数据库;
所述各消息接收装置,适于从所述数据库系统的各从数据库获取消息。
8.如权利要求7所述的系统,其中,
每个消息接收装置,适于向数据库系统订阅消息;
数据库系统,适于当消息接收装置订阅的消息到达时,根据负网络连接状况为该消息接收装置指定一个从数据库;
该消息接收装置,从指定的从数据库获取消息。
9.如权利要求8所述的系统,其中,
所述数据库系统,适于根据网络连接状况选择一个或多个从数据库;当选择一个从数据库时,为该消息接收方指定该选择的从数据库;当选择多个从数据库时,根据各从数据库的访问量为该消息接收方指定一个从数据库。
10.如权利要求6所述的系统,其中,Syndic节点进一步适于将收到的消息下发到对应的多个Minion节点。
CN201610201690.6A 2016-03-31 2016-03-31 提高消息传输可靠性的方法和系统 Expired - Fee Related CN105930339B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610201690.6A CN105930339B (zh) 2016-03-31 2016-03-31 提高消息传输可靠性的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610201690.6A CN105930339B (zh) 2016-03-31 2016-03-31 提高消息传输可靠性的方法和系统

Publications (2)

Publication Number Publication Date
CN105930339A CN105930339A (zh) 2016-09-07
CN105930339B true CN105930339B (zh) 2019-05-31

Family

ID=56840514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610201690.6A Expired - Fee Related CN105930339B (zh) 2016-03-31 2016-03-31 提高消息传输可靠性的方法和系统

Country Status (1)

Country Link
CN (1) CN105930339B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110225133B (zh) * 2019-06-20 2022-01-21 恒生电子股份有限公司 消息发送方法、节点、装置、系统及相关设备
CN113342546A (zh) * 2021-06-04 2021-09-03 湖南快乐阳光互动娱乐传媒有限公司 基于数据库保证消息可靠性的方法、装置和计算机系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103209115A (zh) * 2013-04-07 2013-07-17 北京京东世纪贸易有限公司 一种消息发送系统
CN103500229A (zh) * 2013-10-24 2014-01-08 北京奇虎科技有限公司 一种数据库同步方法和数据库系统
CN103778258A (zh) * 2014-02-27 2014-05-07 华为技术有限公司 一种数据库数据的发送、接收方法、客户端、服务器
CN104021200A (zh) * 2014-06-16 2014-09-03 北京京东尚科信息技术有限公司 一种数据库的数据同步方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103209115A (zh) * 2013-04-07 2013-07-17 北京京东世纪贸易有限公司 一种消息发送系统
CN103500229A (zh) * 2013-10-24 2014-01-08 北京奇虎科技有限公司 一种数据库同步方法和数据库系统
CN103778258A (zh) * 2014-02-27 2014-05-07 华为技术有限公司 一种数据库数据的发送、接收方法、客户端、服务器
CN104021200A (zh) * 2014-06-16 2014-09-03 北京京东尚科信息技术有限公司 一种数据库的数据同步方法和装置

Also Published As

Publication number Publication date
CN105930339A (zh) 2016-09-07

Similar Documents

Publication Publication Date Title
CN105389191B (zh) 一种基于局域网的软件升级方法、装置和系统
CN104539977B (zh) 直播预览方法及装置
CN105550051B (zh) 业务请求的异步处理方法及装置
CN109729040B (zh) 协议的选择的方法、设备以及计算机可读介质
CN106534345B (zh) 一种报文转发方法及装置
CN108776917B (zh) 一种虚拟三维空间的同步处理方法及装置
CN111865629B (zh) 用于配置服务实例的方法、设备和计算机程序产品
CN104965727A (zh) 一种重启服务器的方法及装置
CN107103004A (zh) 网页中的数据处理方法、装置及系统
CN104967644A (zh) 消息推送方法、装置及系统
CN108200444A (zh) 一种视频直播的方法、装置和系统
WO2017101815A1 (zh) 一种消息处理方法、装置和系统
CN103595770A (zh) Sdk实现文件下载的方法与装置
CN105338564B (zh) 一种客户端适配方法、客户端、服务器以及系统
CN106790603A (zh) 消息交互的方法、装置及系统
CN105930339B (zh) 提高消息传输可靠性的方法和系统
CN108234242A (zh) 一种基于流的压力测试方法和装置
CN105471812B (zh) 获取网络视频资源的方法及系统
WO2012174838A1 (zh) 一种网元消息并发处理方法及系统
CN106302670B (zh) 一种图片更新方法、通信终端及服务器
CN105681162A (zh) 一种信息同步的方法、装置和系统
CN108964825A (zh) 校时方法、校时装置和校时服务器
CN116361155A (zh) 软件开发包的测试方法、装置和存储介质及电子装置
CN102970212A (zh) 用于发送用户群组内消息的系统
CN106230878B (zh) 一种基于AllJoyn框架的设备服务调用方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220727

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190531