CN111314189A - 一种业务消息的发送方法及装置 - Google Patents
一种业务消息的发送方法及装置 Download PDFInfo
- Publication number
- CN111314189A CN111314189A CN202010054248.1A CN202010054248A CN111314189A CN 111314189 A CN111314189 A CN 111314189A CN 202010054248 A CN202010054248 A CN 202010054248A CN 111314189 A CN111314189 A CN 111314189A
- Authority
- CN
- China
- Prior art keywords
- message
- service
- equipment
- sending
- message receiving
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本说明书公开了一种业务消息的发送方法及装置,应用于业务计算系统中的总线控制设备。基于每个消息接收设备的设备标识哈希值,构建一致性哈希环,所述方法包括:通过所述消息总线,接收任一消息发送设备发送的业务消息;根据所述业务消息,获取所述业务消息关联的业务对象的对象标识;基于所述一致性哈希环,对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定所述业务对象对应的消息接收设备;通过所述消息总线,将所述业务消息发送给所述业务对象对应的消息接收设备进行计算。上述方法通过一致性哈希环,将固定业务对象涉及的业务消息发送到固定的消息接收设备上,从而使消息接收设备无需实时获取历史业务消息,提高了计算效率。
Description
技术领域
本说明书实施例涉及网络通信领域,尤其涉及一种业务消息的发送方法及装置。
背景技术
图1是现有的业务计算系统的结构示意图。如图1所示,业务计算系统包括至少一个消息发送设备、多个消息接收设备、消息总线以及总线控制设备。业务计算系统一般用于对业务方提供的业务事件进行计算分析,得到业务方需要的计算结果。
在实际应用中,业务方监测到业务事件发生时,会将该业务事件通知给某个消息发送设备;该消息发送设备会基于被通知的业务事件构建业务消息,将业务消息发给消息总线;总线控制设备会通过消息总线将该业务消息随机地发送给某个消息接收设备;该消息接收设备会基于该业务消息以及与该业务消息涉及相同的业务对象的历史业务消息执行一系列计算任务,从而得到一系列计算结果发送到业务方。
对于每个消息接收设备而言,由于有可能执行涉及任何业务对象的计算任务,因此,要么存储全部业务对象涉及的历史业务消息,要么从历史业务消息库中实时获取历史业务消息进行计算。然而,使用上述方法会影响计算任务的执行效率。
发明内容
为了提高计算任务的执行效率,本说明书公开了一种业务消息的发送方法及装置,具体技术方案如下:
一种业务消息的发送方法,应用于业务计算系统中的总线控制设备,所述业务计算系统还包括消息总线、多个消息接收设备以及至少一个消息发送设备;
基于每个消息接收设备的设备标识哈希值,构建一致性哈希环,所述方法包括:
从任一消息发送设备获取业务消息;
根据所述业务消息,获取所述业务消息关联的业务对象的对象标识;
基于所述一致性哈希环,对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定所述业务对象对应的消息接收设备;
通过所述消息总线,将所述业务消息发送给所述业务对象对应的消息接收设备进行计算。
一种业务消息的发送装置,应用于业务计算系统中的总线控制设备,所述业务计算系统还包括消息总线、多个消息接收设备以及至少一个消息发送设备;
基于每个消息接收设备的设备标识哈希值,构建一致性哈希环,所述装置包括:
消息获取单元,用于从任一消息发送设备获取业务消息;
对象标识获取单元,用于根据所述业务消息,获取所述业务消息关联的业务对象的对象标识;
消息映射单元,基于所述一致性哈希环,用于对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定所述业务对象对应的消息接收设备;
消息发送单元,用于通过所述消息总线,将所述业务消息发送给所述业务对象对应的消息接收设备进行计算。
上述技术方案通过一致性哈希环,将包含同一对象标识的业务消息映射到固定的消息接收设备,以使固定业务对象涉及的业务消息被发送到固定的消息接收设备进行计算,即固定业务对象涉及的业务消息由固定的消息接收设备计算。
针对业务计算系统中所有消息接收设备,每个消息接收设备只接收固定业务对象涉及的业务消息,并不会接收到其他业务对象涉及的业务消息,因此对于每个消息接收设备而言,该消息接收设备每次获取到涉及该消息接收设备绑定业务对象的业务消息时,在完成计算任务后可以将该业务消息存储于本地作为一个新的历史业务消息备用,无需将该业务消息发送给历史业务消息库进行存储。
由于只需要存储固定业务对象涉及的历史业务消息,无需存储全部业务对象涉及的历史业务消息,对于消息接收设备有限的存储空间而言,存储部分业务对象涉及的历史业务消息是可行的。因此消息接收设备对于接收到的业务消息无需实时获取历史业务消息,也无需将该业务消息发送到历史业务消息库进行存储,直接利用本地存储的历史业务消息用于执行计算任务,提高了计算任务的执行效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是现有的业务计算系统的结构示意图;
图2是本说明书实施例提供的一种业务消息的发送方法的流程示意图;
图3是本说明书实施例提供的一种业务消息格式的结构示意图;
图4是本说明书实施例提供的一种一致性哈希算法的原理示意图;
图5是本说明书实施例提供的一种添加标签的业务消息格式的结构示意图;
图6是本说明书实施例提供的另一种业务消息的发送方法的流程示意图;
图7是本说明书实施例提供的一种业务计算系统的结构示意图;
图8是本说明书实施例提供的另一种添加标签的业务消息格式的结构示意图;
图9是本说明书实施例提供的一种业务消息的发送装置的结构示意图;
图10是本说明书实施例提供的另一种业务消息的发送装置的结构示意图;
图11是本说明书实施例提供的另一种业务消息的发送装置的结构示意图;
图12是本说明书实施例提供的另一种业务消息的发送装置的结构示意图;
图13是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
由于业务方本身需要监测所有的业务对象发生的业务事件,计算能力不足,无法在本地针对每件业务事件进行计算并得到计算结果,因此业务方需要业务计算系统帮助业务方执行一系列计算任务,得到计算结果。
图1是现有的业务计算系统的结构示意图。如图1所示,业务计算系统包括至少一个消息发送设备、多个消息接收设备、消息总线以及总线控制设备。其中至少一个消息发送设备都与消息总线相连,多个消息接收设备都与消息总线向量,总线控制设备与消息总线相连。
业务计算系统一般用于对业务方提供的业务事件进行计算分析,得到业务方需要的计算结果。其中消息发送设备用于接收业务方发送的业务事件,将业务事件封装成业务消息,再将业务消息发送到总线;消息接收设备用于接收消息总线发送的业务消息,获取该业务消息对应的业务对象的历史业务消息,再根据业务消息和获取的历史业务消息执行一系列计算任务,得到一系列计算结果;消息总线用于获取消息发送设备发送的消息,接受总线控制设备的调度确定接收该消息的消息接收设备,向消息接收设备发送消息;总线控制设备用于控制消息总线,随机选择接收消息的消息接收设备,以使消息总线向该消息接收设备发送消息。
在实际应用中,业务方监测到某个业务对象发生业务事件时,会将该业务事件发送到业务计算系统中某个消息发送设备;该消息发送设备接收到该业务事件后,会基于该业务事件构建业务消息,所述业务消息包含该业务对象的对象标识,将业务消息发给消息总线;总线控制设备会通过消息总线将该业务消息随机地发送给某个消息接收设备;该消息接收设备会基于该业务消息以及该业务对象的历史业务消息执行一系列计算任务,从而得到一系列计算结果发送到业务方。
例如:业务对象可以为股票,业务事件可以为发生交易事件。当业务方监测到某只股票发生交易事件时,将该交易事件发送到业务计算系统的某个消息发送设备;该消息发送设备接收到该交易事件后,可以基于该交易事件构建业务消息,该业务消息中包含股票的唯一标识和交易事件的相关数据,例如交易股数或成交金额,将该业务消息发送给消息总线;总线控制设备会通过消息总线将该业务消息随机地发送到某个消息接收设备;该消息接收设备基于业务消息中的股票唯一标识获取该股票的历史交易数据,即历史业务消息,再基于历史交易数据和该业务消息中交易事件的相关数据执行一系列计算任务,以便得到一系列与该股票相关的计算结果,例如市盈率或均值,发送到业务方。
针对业务计算系统中所有消息接收设备,由于业务消息被总线控制设备随机分配,每个消息接收设备都有可能执行任一业务对象涉及的计算任务,即每个消息接收设备都可能执行任一业务对象涉及的任一计算任务。如果消息接收设备需要执行某一业务对象涉及的计算任务,必须获取到该业务对象的历史业务消息才能执行该计算任务。因此,针对业务计算系统中所有消息接收设备,如果每个消息接收设备都可能执行任一业务对象涉及的任一计算任务,该消息接收设备必须能够获取到所有业务对象涉及的历史业务消息才能执行。
因此,针对业务计算系统中所有消息接收设备,每个消息接收设备要么在本地存储所有业务对象涉及的历史业务消息以便于从本地获取,要么从历史业务消息库中实时获取历史业务消息进行计算。然而,消息接收设备的存储空间是有限的,存储全部业务对象涉及的历史业务消息是不可行的,消息接收设备只能从历史业务消息库中根据业务对象的对象标识实时获取该业务对象涉及的历史业务消息,以便于执行计算任务。
但是实时获取历史业务消息存在延时性,影响计算任务的执行效率。
申请人在上述场景中分析上述问题时,发现影响计算任务的执行效率的本质原因是业务消息被总线控制设备随机分配。因为业务消息被随机分配,所以针对业务计算系统中所有消息接收设备,每个消息接收设备都有可能处理所有业务对象涉及的业务消息,所以该消息接收设备必须能够获取所有业务对象涉及的历史业务消息,又因为该消息接收设备无法存储所有业务对象涉及的历史业务消息,所以只能实时获取历史业务消息,从而影响了计算任务的执行效率。
因此申请人想到,如果业务消息不被总线控制设备随机分配,而是通过某种分配机制,将固定业务对象的业务消息都由固定的消息接收设备处理,可以提高计算任务的执行效率。
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
下面结合说明书附图对本说明书实施例作进一步详细描述。
如图2所示,为本实施例提供的一种业务消息的发送方法的流程示意图,所述方法应用于图1所示的业务计算系统中的总线控制设备,所述业务计算系统还包括消息总线、多个消息接收设备以及至少一个消息发送设备。此外,基于每个消息接收设备的设备标识哈希值构建一致性哈希环,构建一致性哈希环的步骤在后文解释。
所述方法包括以下步骤:
S101:总线控制设备通过消息总线,接收任一消息发送设备发送的业务消息。
针对业务计算系统中所有消息发送设备,每个消息发送设备可以接收到业务方发送的业务事件后,将业务事件封装成业务消息,并将该业务消息通过消息总线发送到总线控制设备。此外,所述业务消息可以具有固定的格式。
作为一种示例,业务消息的格式可以如图3所示,为本实施例提供的一种业务消息格式的结构示意图。其中前缀信息可以包含一种或多种业务对象或业务事件的相关信息,例如业务对象的对象标识,或者业务事件的发起方,或者业务事件的相关数据的种类;事件数据可以是该业务事件包含的相关数据,例如,股票交易的金额、数量、时间或者交易双方信息,所述业务事件为股票发生交易。
消息发送设备监测到业务事件后,将业务事件的相关信息放到前缀信息,将业务事件的相关数据放到事件数据中。
S102:根据所述业务消息,获取所述业务消息关联的业务对象的对象标识。
总线控制设备可以从所述业务消息中提取关联于所述业务消息的业务对象的对象标识。作为一种示例,所述业务消息中可以包含前缀信息,前缀信息中可以包含业务对象的对象标识,总线控制设备可以从所述业务消息的前缀信息中直接提取业务对象的对象标识。
总线控制设备也可以从其他来源获取所述业务消息关联的业务对象的对象标识。作为另一种示例,可以根据所述业务消息的来源直接确定所述业务消息关联的业务对象,总线控制设备可以在本地存储有所有业务对象的对象标识,从而根据确定的业务对象直接在本地获取该业务对象的对象标识。
S103:基于一致性哈希环,对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定所述业务对象对应的消息接收设备。
构建一致性哈希环的步骤包括:将整个哈希值空间映射成一个虚拟的圆,哈希值空间可以为0~232-1,整个哈希值空间在虚拟的圆上从0开始按照顺时针方向由小到大依次排列,0与232-1重合,这个虚拟的圆即为一致性哈希环。针对业务计算系统中所有消息接收设备,计算每个消息接收设备的设备标识对应的哈希值,再将计算得到的设备标识的哈希值映射到一致性哈希环上。从而得到基于每个消息接收设备的设备标识哈希值构建的一致性哈希环。
其中,构建一致性哈希环的主体可以是总线控制设备,也可以是其他设备,也可以是人为构建的;构建一致性哈希环的时机可以在本实施例之前预先构建,也可以在S103之前构建。
如图4所示,为本实施例提供的一种一致性哈希算法的原理示意图,其中第一设备标识、第二设备标识等仅是为了方便描述,并不意味着本实施例中只有四个消息接收设备或者设备名只能是第一设备等等。基于构建好的一致性哈希环,总线控制设备可以计算所述业务对象的对象标识对应的哈希值,再将计算得到的对象标识哈希值映射到一致性哈希环上,确定所述业务对象对应的消息接收设备。
作为一种示例,可以确定与对象标识哈希值在一致性哈希环的顺时针方向上最接近的设备标识哈希值,该设备标识哈希值对应的消息接收设备可以确定为所述业务对象对应的消息接收设备,如图4所示,可以确定第三设备标识哈希值对应的第三设备作为所述业务对象对应的消息接收设备。
作为另一种示例,可以确定与对象标识哈希值在一致性哈希环的逆时针方向上最接近的设备标识哈希值,该设备标识哈希值对应的消息接收设备可以确定为所述业务对象对应的消息接收设备,如图4所示,可以确定第二设备标识哈希值对应的第二设备作为所述业务对象对应的消息接收设备。
通过一致性哈希环,可以根据业务对象的对象标识唯一确定固定的消息接收设备,从而使得固定业务对象涉及的业务消息都由固定的消息接收设备进行计算。
通过一致性哈希环,还可以在业务方创建新的业务对象后,直接为新的业务对象确定固定的消息接收设备,处理新的业务对象涉及的业务消息。
当业务方不断生成新的业务对象时,此时无法预先人为指定新生成的业务对象对应的固定消息接收设备,通过一致性哈希环,可以直接为新生成的业务对象指定固定的消息接收设备,处理新生成的业务对象涉及的业务消息。即通过一致性哈希环可以自动为每个业务对象分配固定的消息接收设备,无需人为指定,对于业务方的业务对象具有较好的稳定性。
通过一致性哈希环,还可以在某一台消息接收设备故障后,或者在某一台消息接收设备注销后,将该消息接收设备对应的固定业务对象直接分配到顺时针方向或逆时针方向上最接近的一台其他消息接收设备,避免因为将业务对象分配到多台消息接收设备,从而使得多台消息接收设备都与历史业务消息库建立连接,获取新分配的业务对象涉及的历史业务消息,浪费历史业务消息库的连接资源。即通过一致性哈希环可以节省历史业务消息的连接资源。
当故障的消息接收设备恢复功能后,或者存在新加入的消息接收设备,可以直接将该消息接收设备映射到一致性哈希环上,接收固定业务对象的业务消息。即通过一致性哈希环可以自动管理消息接收设备的新增和减少,无需人为指定,对于消息接收设备具有较好的稳定性。
S104:通过消息总线,将所述业务消息发送给所述业务对象对应的消息接收设备。
总线控制设备确定了所述业务对象对应的消息接收设备后,可以直接将所述业务消息发送到该消息接收设备上,以使该消息接收设备可以将所述业务消息存储于本地,并根据所述业务消息和获取到的历史业务消息执行计算任务,得到的计算结果发送回业务方。此外,在计算任务完成后,该消息接收设备可以将获取到的历史业务消息存储到本地,并将所述业务消息作为一个新的历史业务消息存储到本地,无需发送到历史业务消息库中。
由于消息接收设备只需要处理一致性哈希环分配的固定业务对象涉及的业务消息,则消息接收设备只需要存储固定业务对象涉及的历史业务消息,即消息接收设备只需存储部分业务对象涉及的历史业务消息,对于有限的存储空间是可行的。因此,历史业务消息和新的业务消息可以直接存储在消息接收设备的本地,无需将新的业务消息发送到历史业务消息库中存储。
作为一种示例,所述设备标识可以是消息接收设备的IP地址。总线控制设备可以根据IP地址直接将所述业务消息发送到该IP地址对应的消息接收设备上。
作为另一种示例,在确定所述业务对象对应的消息接收设备之后,将所述业务对象对应的消息接收设备的设备标识作为所述业务消息的标签。所述设备标识可以是消息接收设备的IP地址。如图5所示,为本实施例提供的一种添加标签的业务消息格式的结构示意图。其中,可以将确定的消息接收设备的IP地址添加到设备标识的字段中,作为所述业务消息的标签。
总线控制设备将所述业务消息发送至所述消息总线对应的消息队列中,以便通过所述消息队列,将所述业务消息投递至所述业务消息的标签指定的消息接收设备。当所述业务消息的标签为消息接收设备的IP地址时,消息队列根据该标签可以直接将所述业务消息发送到该IP地址,即该IP地址对应的消息接收设备可以接收到所述业务消息。
作为另一种示例,所述消息队列可以是ZeroMQ。ZeroMQ具有较快的处理速度,可以主动向消息接收设备发送业务消息,能够减缓高并发造成的业务消息拥堵,且支持前缀匹配。
通过本实施例,总线控制设备基于每个消息接收设备的设备标识哈希值构建一致性哈希环,通过该一致性哈希环,将固定业务对象涉及的业务消息分配到固定消息接收设备上执行计算任务,且对于新的业务对象也可以直接分配到固定消息接收设备上执行计算任务。此外,在完成计算任务之后,消息接收设备将所述业务消息作为一个新的历史业务消息存储到本地,无需发送到历史业务消息库中。由于消息接收设备只需要存储固定业务对象涉及的历史业务消息,即消息接收设备只需存储部分业务对象涉及的历史业务消息,对于有限的存储空间是可行的。而对于新的业务对象而言,其对应的历史业务消息可以存储在固定的消息接收设备上,而历史业务消息库中可以没有该新业务对象的任何历史业务消息。
综合上述技术效果,通过本实施例,消息接收设备可以直接利用本地的历史业务消息和接收到的新业务消息执行计算任务,无需实时查询,从而提高了计算任务的执行效率。
为了使计算任务的执行效率更高,减少消息接收设备的计算压力,可以进一步将消息接收设备按照计算任务分组,从而使消息接收设备只处理部分业务对象涉及的部分计算任务。如图6所示,为本说明书实施例提供的另一种业务消息的发送方法的流程示意图,如图7所示,为本实施例提供的一种业务计算系统的结构示意图,将业务计算系统中的多个消息接收设备划分为至少两个设备组,各设备组分别对应不同的计算任务。所述方法应用于如图7所示的业务计算系统中的总线控制设备,所述业务计算系统还包括消息总线、多个消息接收设备以及至少一个消息发送设备。此外,总线控制设备针对每个设备组,基于该设备组中每个消息接收设备的设备标识哈希值,构建该设备组对应的一致性哈希环,即每个设备组单独对应有一个一致性哈希环。
所述方法包括以下步骤:
S201:总线控制设备通过消息总线,接收任一消息发送设备发送的业务消息。
详细步骤可以参见第一个实施例,在此不再赘述。
S202:根据所述业务消息,确定待计算所述业务消息的设备组,并获取所述业务消息关联的业务对象的对象标识。
由于业务方针对每个业务对象可能存在不同的计算需求,希望得到不同的计算结果,因此针对不同的业务对象涉及的业务消息,可以根据该业务消息确定需要执行的计算任务,再根据需要执行的计算任务确定该业务消息需要发送到的设备组,即确定待计算该业务消息的设备组。
作为一种示例,预先针对每个消息接收设备,总线控制设备可以获取该消息接收设备指定的匹配条件,其中,同一设备组中的消息接收设备指定的匹配条件相同。其中,消息接收设备指定的匹配条件可以是对业务对象的对象标识的限定,或者对业务事件的发起方的限定,或者对业务事件的相关数据来源的限定。例如,如果业务计算系统只针对股票标识为001的股票计算市盈率,则计算市盈率的消息接收设备指定的匹配条件可以是“业务对象的对象标识为001”。
针对每个设备组,判断所述业务消息是否满足该设备组中的消息接收设备指定的匹配条件;若是,则确定该设备组待计算所述业务消息;若否,则确定该设备组不计算所述业务消息。例如,匹配条件为“业务对象的对象标识为001”,而所述业务消息中的对象标识为002,则确定该设备组不计算所述业务消息。通过匹配条件确定待计算所述业务消息的设备组,具有较强的灵活性,可以根据需求制定对应的匹配条件,满足不同的需求。
作为另一种示例,每个消息接收设备可以预先将所在设备组的标识和设备标识发送到总线控制设备。其中,设备标识可以是消息接收设备的IP地址或MAC地址,设备组标识可以是人工规定的用于区分不同设备组的标识。其中设备组标识可以对应一个匹配条件集合。
作为另一种示例,业务事件中可以包含有需要计算的计算任务,消息发送设备可以将需要计算的计算任务封装到事件数据或前缀信息中,总线控制设备可以根据业务消息中包含的需要计算的计算任务确定待计算所述业务消息的设备组。例如,业务消息中包含有表征“计算市盈率”的计算任务,具体可以是101表示计算市盈率,102表示计算均值,103表示计算峰值,总线控制设备根据需要计算的计算任务确定计算市盈率的设备组作为待计算所述业务消息的设备组。
作为另一种示例,总线控制设备可以提前针对每个设备组设置匹配条件,若所述业务消息满足该设备组的匹配条件,则确定该设备组待计算所述业务消息。通过匹配条件确定待计算所述业务消息的设备组,具有较强的灵活性,可以根据需求制定对应的匹配条件,满足不同的需求。
获取业务对象的对象标识,具体可以参见第一个实施例,在此不再赘述。
S203:针对确定的每个设备组,基于该设备组对应的一致性哈希环,对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定该设备组中对应于所述业务对象的消息接收设备。
由于每个设备组都对应有一个一致性哈希环,因此确定需要计算所述业务消息的设备组后,可以针对确定的每个设备组,将所述业务对象的对象标识哈希值映射到该设备组对应的一致性哈希环上,确定该设备组中对应于所述业务对象的消息接收设备。
其中,构建一致性哈希环的步骤、如何根据一致性哈希环确定固定的消息接收设备和使用一致性哈希环的效果在第一个实施例中都有描述,此处不再赘述。
S204:通过消息总线,针对确定的每个设备组,将所述业务消息发送给该设备组中对应于所述业务对象的消息接收设备。
总线控制设备针对确定的每个设备组,确定了所述业务对象对应的该设备组中的消息接收设备后,可以直接将所述业务消息发送到该设备组中的该消息接收设备上,以使该设备组中的该消息接收设备根据所述业务消息和本地存储的历史业务消息直接执行计算任务,得到计算结果发送回业务方。
作为一种示例,所述设备标识可以是消息接收设备的IP地址。总线控制设备可以根据IP地址直接将所述业务消息发送到该IP地址对应的消息接收设备上。
作为另一种示例,在确定所述业务对象对应的消息接收设备之后,将所述业务对象对应的消息接收设备的设备标识和该消息接收设备所在的设备组的设备组标识作为所述业务消息的标签。所述设备标识可以是消息接收设备的IP地址,所述设备组标识可以是预先规定的区分不同设备组的标识,例如设备组标识为1表示执行计算市盈率的计算任务的设备组,设备组标识为2表示执行计算均值的计算任务的设备组。如图8所示,为本实施例提供的另一种添加标签的业务消息格式的结构示意图。其中,可以将确定的消息接收设备的IP地址添加到设备标识的字段中,可以将设备组的标识添加到设备组标识的字段中,将设备组标识和设备标识共同作为所述业务消息的标签。
总线控制设备可以将所述业务消息发送至所述消息总线对应的消息队列中,以便通过所述消息队列,将所述业务消息投递至所述业务消息的标签指定的消息接收设备。由于业务消息的标签唯一对应于固定的消息接收设备,因此消息队列可以通过消息过滤的方法,即根据业务消息的标签直接确定消息接收设备,从而无需根据设备标识查询消息接收设备,可以直接根据标签将所述业务消息发送到对应的消息接收设备。即利用消息队列,根据唯一对应于固定设备的消息标签进行消息过滤,将消息发送到固定的消息接收设备。
作为另一种示例,所述消息队列可以是ZeroMQ。ZeroMQ具有较快的处理速度,可以主动向消息接收设备发送业务消息,能够减缓高并发造成的业务消息拥堵,且支持前缀匹配。总线控制设备还可以直接通过ZeroMQ的前缀匹配功能将业务消息的前缀信息与预先指定的匹配条件进行匹配,无需额外编写程序。
通过上述方法,将消息接收设备预先分为不同的设备组,不同的设备组处理不同的计算任务,对于同一个业务消息,总线控制设备需要将该业务消息发送到需要计算的设备组中,执行不同的计算任务,即固定的消息接收设备只处理固定的计算任务。又因为一致性哈希环使得固定的消息接收设备只处理固定的业务对象涉及的业务消息,因此固定的消息接收设备只处理固定的业务对象涉及的业务消息对应的固定计算任务,即每个消息接收设备只处理部分业务对象涉及的部分计算任务,减轻了消息接收设备的计算压力,进一步提高了计算任务的执行效率。
如图9所示,为本说明书实施例提供的一种业务消息的发送装置的结构示意图。该发送装置具体为业务计算系统中的总线控制设备,所述业务计算系统还包括消息总线、多个消息接收设备以及至少一个消息发送设备;
基于每个消息接收设备的设备标识哈希值,构建一致性哈希环,构建一致性哈希环的主体、时机和步骤在上述方法实施例中有详细描述,此处不再赘述。
所述装置包括:
消息获取单元301,用于通过所述消息总线,接收任一消息发送设备发送的业务消息。
对象标识获取单元302,用于根据所述业务消息,获取所述业务消息关联的业务对象的对象标识。
作为一种示例,对象标识获取单元302具体可以用于从所述业务消息中提取关联于所述业务消息的业务对象的对象标识。
消息映射单元303,基于所述一致性哈希环,用于对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定所述业务对象对应的消息接收设备。
消息发送单元304,用于通过所述消息总线,将所述业务消息发送给所述业务对象对应的消息接收设备,以便该消息接收设备将所述业务消息存储于本地,并根据所述业务消息执行计算。
如图10所示,为本说明书实施例提供的另一种业务消息的发送装置的结构示意图。该发送装置与图9所示的发送装置相比,还包括:
标签添加单元305,用于将所述业务对象对应的消息接收设备的设备标识作为所述业务消息的标签。
作为一种示例,消息发送单元304,具体可以用于将所述业务消息发送至所述消息总线对应的消息队列中,以便通过所述消息队列,将所述业务消息投递至所述业务消息的标签指定的消息接收设备。
如图11所示,为本说明书实施例提供的另一种业务消息的发送装置的结构示意图。该发送装置应用于业务计算系统中的总线控制设备,所述业务计算系统还包括消息总线、多个消息接收设备以及至少一个消息发送设备;
将业务计算系统中的多个消息接收设备划分为至少两个设备组,各设备组分别对应不同的计算任务,并且,针对每个设备组,基于该设备组中每个消息接收设备的设备标识哈希值,构建该设备组对应的一致性哈希环。构建一致性哈希环的主体、时机和步骤在上述方法实施例中有详细描述,此处不再赘述。
所述装置包括:
消息获取单元301,用于通过所述消息总线,接收任一消息发送设备发送的业务消息。
分组确定单元401,用于根据所述业务消息,确定待计算所述业务消息的设备组,并获取所述业务消息关联的业务对象的对象标识。
分组消息映射单元402,用于针对确定的每个设备组,基于该设备组对应的一致性哈希环,对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定该设备组中对应于所述业务对象的消息接收设备。
分组消息发送单元403,用于通过所述消息总线,将所述业务消息发送给该设备组中对应于所述业务对象的消息接收设备,以便该消息接收设备将所述业务消息存储于本地,并根据所述业务消息执行该设备组对应的计算任务。
如图12所示,为本说明书实施例提供的另一种业务消息的发送装置的结构示意图,该发送装置与图11所示的发送装置相比,还包括:
条件获取单元404,用于预先针对每个消息接收设备,获取该消息接收设备指定的匹配条件;其中,同一设备组中的消息接收设备指定的匹配条件相同;
所述分组确定单元401,具体用于针对每个设备组,判断所述业务消息是否满足该设备组中的消息接收设备指定的匹配条件;若是,则确定该设备组待计算所述业务消息;若否,则确定该设备组不计算所述业务消息。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现一种业务消息的发送方法。
图13示出了本说明书实施例所提供的一种更为具体的实现一种业务消息的发送方法,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种业务消息的发送方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护。
Claims (11)
1.一种业务消息的发送方法,应用于业务计算系统中的总线控制设备,所述业务计算系统还包括消息总线、多个消息接收设备以及至少一个消息发送设备;
基于每个消息接收设备的设备标识哈希值,构建一致性哈希环,所述方法包括:
通过所述消息总线,接收任一消息发送设备发送的业务消息;
根据所述业务消息,获取所述业务消息关联的业务对象的对象标识;
基于所述一致性哈希环,对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定所述业务对象对应的消息接收设备;
通过所述消息总线,将所述业务消息发送给所述业务对象对应的消息接收设备,以便该消息接收设备将所述业务消息存储于本地,并根据所述业务消息执行计算。
2.如权利要求1所述的方法,根据所述业务消息,获取所述业务消息关联的业务对象的对象标识,具体包括:
从所述业务消息中提取关联于所述业务消息的业务对象的对象标识。
3.如权利要求1所述的方法,在将所述业务消息发送给所述业务对象对应的消息接收设备之前,所述方法还包括:
所述业务对象对应的消息接收设备的设备标识作为所述业务消息的标签;
通过所述消息总线,将所述业务消息发送给所述业务对象对应的消息接收设备,具体包括:
将所述业务消息发送至所述消息总线对应的消息队列中,以便通过所述消息队列,将所述业务消息投递至所述业务消息的标签指定的消息接收设备。
4.一种业务消息的发送方法,应用于业务计算系统中的总线控制设备,所述业务计算系统还包括消息总线、多个消息接收设备以及至少一个消息发送设备;
将业务计算系统中的多个消息接收设备划分为至少两个设备组,各设备组分别对应不同的计算任务,并且,针对每个设备组,基于该设备组中每个消息接收设备的设备标识哈希值,构建该设备组对应的一致性哈希环,所述方法包括:
通过所述消息总线,接收任一消息发送设备发送的业务消息;
根据所述业务消息,确定待计算所述业务消息的设备组,并获取所述业务消息关联的业务对象的对象标识;
针对确定的每个设备组,基于该设备组对应的一致性哈希环,对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定该设备组中对应于所述业务对象的消息接收设备;
通过所述消息总线,将所述业务消息发送给该设备组中对应于所述业务对象的消息接收设备,以便该消息接收设备将所述业务消息存储于本地,并根据所述业务消息执行该设备组对应的计算任务。
5.如权利要求4所述的方法,所述方法还包括:
预先针对每个消息接收设备,获取该消息接收设备指定的匹配条件;其中,同一设备组中的消息接收设备指定的匹配条件相同;
根据所述业务消息,确定待计算所述业务消息的设备组,具体包括:
针对每个设备组,判断所述业务消息是否满足该设备组中的消息接收设备指定的匹配条件;
若是,则确定该设备组待计算所述业务消息;
若否,则确定该设备组不计算所述业务消息。
6.一种业务消息的发送装置,具体为业务计算系统中的总线控制设备,所述业务计算系统还包括消息总线、多个消息接收设备以及至少一个消息发送设备;
基于每个消息接收设备的设备标识哈希值,构建一致性哈希环,所述装置包括:
消息获取单元,用于通过所述消息总线,接收任一消息发送设备发送的业务消息;
对象标识获取单元,用于根据所述业务消息,获取所述业务消息关联的业务对象的对象标识;
消息映射单元,基于所述一致性哈希环,用于对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定所述业务对象对应的消息接收设备;
消息发送单元,用于通过所述消息总线,将所述业务消息发送给所述业务对象对应的消息接收设备,以便该消息接收设备将所述业务消息存储于本地,并根据所述业务消息执行计算。
7.如权利要求6所述的装置,所述对象标识获取单元,具体用于:
从所述业务消息中提取关联于所述业务消息的业务对象的对象标识。
8.如权利要求6所述的装置,还包括:
标签添加单元,用于将所述业务对象对应的消息接收设备的设备标识作为所述业务消息的标签;
消息发送单元,具体用于:
将所述业务消息发送至所述消息总线对应的消息队列中,以便通过所述消息队列,将所述业务消息投递至所述业务消息的标签指定的消息接收设备。
9.一种业务消息的发送装置,应用于业务计算系统中的总线控制设备,所述业务计算系统还包括消息总线、多个消息接收设备以及至少一个消息发送设备;
将业务计算系统中的多个消息接收设备划分为至少两个设备组,各设备组分别对应不同的计算任务,并且,针对每个设备组,基于该设备组中每个消息接收设备的设备标识哈希值,构建该设备组对应的一致性哈希环,所述装置包括:
消息获取单元,用于通过所述消息总线,接收任一消息发送设备发送的业务消息;
分组确定单元,用于根据所述业务消息,确定待计算所述业务消息的设备组,并获取所述业务消息关联的业务对象的对象标识;
分组消息映射单元,用于针对确定的每个设备组,基于该设备组对应的一致性哈希环,对所述业务对象的对象标识哈希值进行映射,并根据映射结果,确定该设备组中对应于所述业务对象的消息接收设备;
分组消息发送单元,用于通过所述消息总线,将所述业务消息发送给该设备组中对应于所述业务对象的消息接收设备,以便该消息接收设备将所述业务消息存储于本地,并根据所述业务消息执行该设备组对应的计算任务。
10.如权利要求9所述的装置,还包括:
条件获取单元,用于预先针对每个消息接收设备,获取该消息接收设备指定的匹配条件;其中,同一设备组中的消息接收设备指定的匹配条件相同;
所述分组确定单元,具体用于:
针对每个设备组,判断所述业务消息是否满足该设备组中的消息接收设备指定的匹配条件;
若是,则确定该设备组待计算所述业务消息;
若否,则确定该设备组不计算所述业务消息。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010054248.1A CN111314189B (zh) | 2020-01-17 | 2020-01-17 | 一种业务消息的发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010054248.1A CN111314189B (zh) | 2020-01-17 | 2020-01-17 | 一种业务消息的发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111314189A true CN111314189A (zh) | 2020-06-19 |
CN111314189B CN111314189B (zh) | 2022-02-25 |
Family
ID=71161476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010054248.1A Active CN111314189B (zh) | 2020-01-17 | 2020-01-17 | 一种业务消息的发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111314189B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119268A (zh) * | 2007-06-28 | 2008-02-06 | 杭州东信北邮信息技术有限公司 | 基于通用消息总线的通用业务系统架构的实现方法 |
US20090254623A1 (en) * | 2008-03-24 | 2009-10-08 | Hones William G | Messaging device and system |
CN104301425A (zh) * | 2014-10-24 | 2015-01-21 | 南方电网科学研究院有限责任公司 | 基于对象类型和哈希环的对象注册中心服务集群实现方法 |
CN108306815A (zh) * | 2017-12-28 | 2018-07-20 | 五八有限公司 | 一种获取消息的方法、装置、设备及计算机可读存储介质 |
CN108769111A (zh) * | 2018-04-17 | 2018-11-06 | 平安科技(深圳)有限公司 | 一种服务器连接方法、计算机可读存储介质及终端设备 |
CN110019123A (zh) * | 2017-11-10 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种数据迁移方法和装置 |
-
2020
- 2020-01-17 CN CN202010054248.1A patent/CN111314189B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119268A (zh) * | 2007-06-28 | 2008-02-06 | 杭州东信北邮信息技术有限公司 | 基于通用消息总线的通用业务系统架构的实现方法 |
US20090254623A1 (en) * | 2008-03-24 | 2009-10-08 | Hones William G | Messaging device and system |
CN104301425A (zh) * | 2014-10-24 | 2015-01-21 | 南方电网科学研究院有限责任公司 | 基于对象类型和哈希环的对象注册中心服务集群实现方法 |
CN110019123A (zh) * | 2017-11-10 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种数据迁移方法和装置 |
CN108306815A (zh) * | 2017-12-28 | 2018-07-20 | 五八有限公司 | 一种获取消息的方法、装置、设备及计算机可读存储介质 |
CN108769111A (zh) * | 2018-04-17 | 2018-11-06 | 平安科技(深圳)有限公司 | 一种服务器连接方法、计算机可读存储介质及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111314189B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
JP2022501752A (ja) | 電子手形識別子の割り当て方法、電子手形の生成方法、及びその装置とシステム、並びに、記憶媒体及びコンピュータプログラム | |
CN109145025B (zh) | 一种多数据源集成的数据查询方法、装置及业务服务器 | |
CN108615151B (zh) | 数据处理方法、区块链服务器以及节点设备 | |
TW202016815A (zh) | 一種並行化執行區塊鏈交易的方法、裝置及系統 | |
CN108737132B (zh) | 一种告警信息处理方法及装置 | |
CN110297944B (zh) | 分布式xml数据处理方法及系统 | |
US11275814B2 (en) | Recording ledger data on a blockchain | |
CN110060153B (zh) | 一种基于多个区块链网络的数据存证方法及系统 | |
CN111798238A (zh) | 平行链共识方法、设备和存储介质 | |
CN115220935A (zh) | 数据处理方法及装置、存储介质 | |
CN109102200B (zh) | 一种定时任务处理方法及装置 | |
CN113608751B (zh) | 推理服务平台的运行方法、装置、设备及存储介质 | |
CN113179295B (zh) | 报文处理方法及装置 | |
CN110737655A (zh) | 用于上报数据的方法和装置 | |
CN109345249A (zh) | 一种支付失败处理方法及装置 | |
CN111314189B (zh) | 一种业务消息的发送方法及装置 | |
CN112783629A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN111626802A (zh) | 用于处理信息的方法和装置 | |
CN110730109A (zh) | 用于生成信息的方法和装置 | |
CN109903023B (zh) | 一种资源分配方法及系统 | |
CN109088929B (zh) | 用于发送信息的方法及装置 | |
CN109901925B (zh) | 一种任务处理方法及系统 | |
CN111798239A (zh) | 平行链共识方法、设备和存储介质 | |
CN111400598A (zh) | 信息推送方法、服务器、多端口转发器和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211229 Address after: Room 602, No. 618, Wai Road, Huangpu District, Shanghai 200010 Applicant after: Ant fortune (Shanghai) Financial Information Service Co., Ltd Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province Applicant before: Alipay (Hangzhou) Information Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |