CN105960791B - 无状态消息传输路由 - Google Patents
无状态消息传输路由 Download PDFInfo
- Publication number
- CN105960791B CN105960791B CN201480062434.2A CN201480062434A CN105960791B CN 105960791 B CN105960791 B CN 105960791B CN 201480062434 A CN201480062434 A CN 201480062434A CN 105960791 B CN105960791 B CN 105960791B
- Authority
- CN
- China
- Prior art keywords
- participant
- node
- message
- dummy
- message transmission
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/48—Message addressing, e.g. address format or anonymous messages, aliases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
描述了限定用于高容量消息传递的可扩展集群(CL)和在参与者(A)之间传递消息。通过使用数学算法将参与者(A)映射至虚拟节点(VN),且将虚拟节点(VN)映射至节点(N)。所述数学算法进一步用于确定用于消息传递的参与者(A)的地址信息。
Description
技术领域
本发明的示例涉及可扩展集群中的消息传输。更具体地,本发明的示例涉及用于限定可扩展集群并在其内传递消息的方法、设备和相关的计算机程序产品。本发明的示例可适用于基于参与者的消息传输。
背景技术
许多网络服务需要高水平的适应、自组织、负载平衡等。例如,在实时消息传输、轮流操作的多人游戏或其它类似应用程序中,消息的及时传递是很重要的。由于参加者可以按照自己的意愿加入和离开服务,因此实现稳健而具成本效益的消息传递将是一个挑战。消息需要传递给一个服务中的所有参与者,并且每个用户可以在多个服务中处于活跃状态。传递所有消息给所有各方是一种方法,而连续的共享状态(带地址信息的路由表)是传递消息的另一种方法。由于各方的数量可能是巨大的,因此传递所有消息给所有各方是没有效率的做法。当各方的数量及其位置发生变化时,共享状态也可能会为消息传递带来相当大的开销。
US2012/011068A1公开了一种电子、物理邮件分类和定向传递的系统和方法,US8584228B1公开了虚拟网络中的分组认证和加密,WO2006/122366公开了动态地址映射,而US2013/339475公开了用于集群滞后的系统和方法。
发明内容
因此,需要一种用于为一方限定消息发送和/或接收的地址信息的方法。
根据一个示例性实施例,一种方法包括获得含有至少部分地标识参与者的参与者ID的消息。所述参与者ID被用于至少一个数学算法中以确定所述参与者的地址信息。使用所述地址信息将上述消息传递至所述参与者。
根据另一个示例性实施例,所述方法还包括:将至少一个数学算法作为确定算法。
根据另一个示例性实施例,所述方法还包括:所述地址信息包括节点的地址信息。
根据另一个示例性实施例,所述方法还包括:所述节点具有与其相关联的虚拟节点。
根据另一个示例性实施例,所述方法还包括:所述至少一个数学算法包括第一数学算法和第二数学算法,第一数学算法可用以确定虚拟节点的地址信息,第二数学算法可用以确定与所述虚拟节点相关联的物理节点的地址信息。
根据另一个示例性实施例,所述方法还包括:第一算法为散列算法,并且第二算法为一致性散列算法。
根据另一个示例性实施例,所述方法还包括:首先传递消息到与所述虚拟节点相关联的缓冲器中的区段。
根据一个示例性实施例,一种传递消息给参与者的方法,其中所述参与者可以至少部分地通过参与者ID来标识。所述消息至少包含参与者ID的信息。其中消息的传递包括:在至少一个数学算法中利用参与者ID,可用以确定与参与者有关的地址信息。
根据另一个示例性实施例,一种非暂态计算机可读存储器,包含计算机程序可读指令,其中当由至少一个数据处理器执行所述计算机程序指令时,会致使:
获得含有至少部分地标识参与者的参与者ID的消息;
在至少一个数学算法中利用所述参与者ID以确定参与者的地址信息;
使用所述地址信息传递消息到参与者。
根据另一个示例性实施例,一种计算机可读存储器包含计算机程序指令。所述计算机程序指令由至少一个数据处理器执行。所述计算机程序产品的执行致使传递消息给参与者,其中参与者可至少部分地通过参与者ID来标识。所述消息至少含有所述参与者ID的信息,并且其中所述消息的传递导致:在至少一个数学算法中利用所述参与者ID,可用以确定参与者的地址信息。
根据另一个示例性实施例,一种设备包括至少一个处理器和至少一个存储器,所述至少一个存储器包括计算机程序代码,所述代码被配置为,利用所述至少一个处理器,致使所述设备执行至少以下操作:
传递消息给参与者,其中所述参与者可至少部分地通过参与者ID来标识。其中所述消息至少含有所述参与者ID的信息。所述消息的传递包括在至少一个数学算法中利用所述参与者ID,可用以确定与所述参与者相关的地址信息。
根据另一个示例性实施例,一种示例性计算机程序产品包括一个或多个指令的一个或多个序列,当其由一个或多个处理器执行时,所述一个或多个指令的一个或多个序列致使设备传递所述消息给参与者,其中所述参与者可至少部分地通过参与者ID来标识。所述消息至少含有所述参与者ID的信息。其中所述消息的传递包括在至少一个数学算法中利用所述参与者ID,可用以确定与所述参与者相关的地址信息。
根据另一个示例性实施例,一种非暂态计算机可读介质,编码有指令,当在硬件中执行时,这些指令执行以下过程,所述过程包括:
获得含有至少部分地标识参与者的参与者ID的消息;
在至少一个数学算法中利用所述参与者ID以确定参与者的地址信息;
使用所述地址信息传递消息到参与者。
根据另一个示例性实施例,一种设备包括:
用于获得含有至少部分地标识参与者的参与者ID的消息的装置;
用于在至少一个数学算法中利用所述参与者ID以确定参与者的地址信息的装置;
用于使用所述地址信息传递消息到参与者的装置。
根据另一个示例性实施例,一种计算机实现方法包括:获得含有至少部分标识参与者的参与者ID的消息。在至少一个数学算法中使用参与者ID,用于确定所示参与者的地址信息。使用地址信息将所述消息传递到所述参与者。
附图说明
通过示例方式,而不是通过限制方式来示出本发明的实施例,在附图的各图中:
图1示出示例性集群。
图2进一步示出示例性集群。
图3进一步示出如何限定示例性集群的流程图。
图4示出如何限定示例性消息传递的流程图。
图5示出简化的消息传递。
图6示出示例性节点设备。
图7示出示例性网络。
具体实施方式
以下实施例仅仅是示例性的。虽然说明书可能引用“一”、“一个”或“一些”实施例,但是这并不一定意味着每个这样的引用是相同实施例或特征仅仅适用于单个实施例。不同实施例的单个特征可以进行组合以提供另外的实施例。
在下文中,将利用其中可以实践本发明的各个实施例的系统架构的简单示例描述本发明的特征。仅仅详细地描述了与说明实施例相关的元件。信息系统的各个实施方式包括适用于示例性实施例并且本文可能没有具体描述的元件。
公开了提供用于传递消息的架构的方法、计算机可读介质、设备和计算机程序产品的示例。
如本文所使用,术语“参与者”是指能够具有状态并且响应于事件(例如,消息)而能够改变状态的计算实体。另外,参与者可能能够作出局部决定、创建更多参与者、发送消息并且确定如何响应于所接收的消息等等。参与者可以例如表示:
用户,其在下文称作用户参与者;
聊天室,其在下文称作聊天室参与者;
游戏状态,其在下文称作游戏状态参与者;
多玩家游戏状态,其在下文称作多玩家游戏状态参与者;
以上示例性参与者的列表并非穷尽性的。可根据需要引入各种类型的参与者。参与者可以是独立的并且它们还可以是相等的,且参与者能够通过至少发送或接收消息而与其它参与者通信。
如本文所使用,术语“参与者ID”是指用来认证参与者的数据。数据可为可用来个别地认证参与者的任何数据。这种数据的示例是例如数字或字母或符号的字符串或者所有先前提及的组合。
如本文所使用,术语“消息”是指含有从一个参与者发送到另一个参与者的离散数据集的通信对象。消息可以含有但不限于,例如标识发送消息的参与者的参与者ID和标识接收消息的参与者的另一参与者ID、消息内容和消息类型。消息类型可以嵌入在消息内容中。消息可以是人类可读或非人类可读的,并且其可以在参与者(人、设备、应用程序和其任何组合)之间发送。其可为例如从一用户到另一用户的聊天消息、从一参与者到另一参与者的游戏事件、从一个应用程序传递到另一应用程序的信息等。
如本文所使用,术语“虚拟节点”(虚拟节点)是指参与者的抽象群组。参与者基于其参与者ID与虚拟节点相关联。参与者可以使用一致性散列算法与虚拟节点相关联。
如本文所使用,术语“节点”是指能够管理与其相关联的虚拟节点的物理计算实体。虚拟节点确定性地使用数学模型与节点相关联,并且节点使用相同模型来限定虚拟节点到节点的映射。每个节点负责一组虚拟节点。至少一个节点可以使用云计算服务来实现,云计算服务可以表现为由真实的服务器硬件提供但是实际上是由虚拟硬件提供服务并且通过在一个或多个真实机器上运行的软件来模拟。
如本文所使用,术语“集群”是指被连接为一起工作并且在一些情况中可被视为单个系统的一组节点。节点可以通过包括硬件和软件部件的任何组合的网络来连接,从而使得一个节点中的过程能够发送信息到另一节点中的另一过程或从另一节点中的另一过程接收信息。网络可以是例如局域网、家庭网、存储区域网、校园网、中枢网络、蜂窝网、城域网、广域网、企业专用网、虚拟专用网、专用或公共云或互联网或任何这样的网络的组合。
如本文所使用,术语“一致性散列算法”是指一种优化类型的散列,其中使用一种在发生变化时减少对重映射的需要的算法来完成分配。如果集群大小改变,则许多虚拟节点可以与其它节点相关联。虚拟节点可以关联到新节点或重新关联到现有节点。集群大小可以在参与者(如用户参与者)的数量改变时而发生改变。一致性散列最大限度地减小虚拟节点分配的变化数量。该算法需要知道集群中的节点数量以及对节点的一些标识信息。作为该算法的一部分,例如,可以通过标识信息对节点进行排序,所述标识信息可以包括:例如分配给每个节点的地址或唯一流水号。集群中的每个节点用于由一致性散列算法所确定的一组虚拟节点。
如本文所使用,术语“客户端”是指连接至集群的外部实体。客户端可以是具有用户界面的任何一种设备,例如,便携式游戏设备、移动电话、计算机、平板设备、汽车中的媒体设备、家用设备(如冰箱、电视等)。
如本文所使用,术语“参与者消息传输”是指参与者之间的消息传输。现有几种合适的可扩充消息传输解决方案,如Akka、Riak、Kafka等,其可以用作聊天系统和游戏服务器等的可扩充后端解决方案。参与者消息传输可以包括消息的缓存。
如本文所使用,术语“外部消息传输”是指参与者与客户端之间的消息传输。现有几种合适的消息传输解决方案如WebSocket、https等。客户端能够在向参与者发送消息或从参与者接受消息时使用外部消息传输。
如本文所使用,术语“缓存”是指用于将数据储存在特定队列中的实体。该实体可以是存储器上的区域,并且可以根据许多合适的消息队列协议(包括RabbitMQ、Kafka和其它合适的缓存系统)来组织数据。
如本文所使用,术语“地址信息”是指用以定义用于将消息传递至正确的接收器的信息的数据。所述信息包括参与者被分配给哪个虚拟节点以及虚拟节点被分配给哪个节点的信息。
图1是根据一个示例性实施例能够为传递消息提供架构的集群CL的示图。该示图简化为仅包括一个客户端C1、一个参与者A1、四个节点N1-N4以及八个虚拟节点VN1-VN8。节点N、与节点N相关联的虚拟节点VN以及与虚拟节点VN相关联的参与者A的数量可以根据需要而改变。
客户端C1只需要至集群CL的一个连接。使用外部消息传输来设置来往于客户端C1的消息传输。在集群CL中,虚拟节点VN1-VN8与节点N1-N4相关联,如下所示:
VN1和VN2关联到N1
VN3和VN4关联到N2
VN5和VN6关联到N3
VN7和VN8关联到N4
对于每个客户端连接,在集群CL中具有对应的用户参与者。在图1中,客户端C1在属于节点N4的虚拟节点VN7中具有对应的参与者A1(用户参与者)。
图2进一步示出客户端C与参与者A之间的消息传输。客户端C1-C6与参与者A1-A7之间的虚线表示外部消息传输,而参与者A之间的实线表示参与者消息传输。如在图1中,每个客户端C以连接到对应的参与者A的一个连接而连接至集群CL(图2中未示出)。
在图2中,为了简化说明,使用用户名来标识客户端C和参与者A。应当注意,一个人可以具有一个以上的客户端C。例如,人Sarah具有连接至相同集群CL且与相同参与者A1“Sarah”相关联的两个客户端C1“Sarah”和C2“Sarah”。同一人的一个以上的客户端C可以以连接至集群CL的相同或不同应用程序而存在于相同或单独的用户设备上。此外,在一些示例性实施例中,客户端C可以是运行大量会话的应用程序服务器等,其可以具有活动在集群CL上的多个单独参与者A。
设想一个示例,其中Mike和Sarah两人正在玩多人游戏。例如,他们正在使用以无线连接访问游戏的移动电话。二者均连接到相同的集群CL并且能够使用其中可用的服务。两人中的任一者可以发起游戏会话并且邀请另一个人加入。
在图2的示例性实施例中,客户端C4游戏管理者与游戏参与者A4“Mike-Sarah-Game”相关联,其中用户参与者A1“Sarah”和A6“Mike”使用参与者消息传输来交换消息。所述消息可以是关于游戏中的当前状态或动作的游戏事件。如果消息源自于或被定址到客户端C1“Sarah”、C2“Sarah”、C6“Mike”或C4“游戏管理器”,则使用外部消息传输。通常在游戏示例中,用户参与者负责处理对于客户端C的进入消息和外出消息并且在相关的游戏参与者之间转发消息。
设想一个示例,其中Tom和Mike正在使用消息传输应用程序进行聊天。例如,他们正在使用以无线连接访问消息传输应用程序的笔记本电脑。二者均连接到相同的集群CL并且能够使用其中可用的服务。两人中的任一者可以发起游戏会话并且邀请另一个人加入。
在图2的另一示例性实施例中示出客户端C5“Tom”和C6“Mike”如何连接至用户参与者“Tom”A5和“Mike”A6,用户参与者“Tom”A5和“Mike”A6均连接至消息线程参与者A7“Tom-Mike-Chat”,消息线程参与者A7“Tom-Mike-Chat”为用于在用户Mike与Tom之间交换消息的聊天参与者。作为示例,Mike使用在其用户设备中的聊天应用程序来键入给Mike(译者注:这里的Mike是否应为Tom?)的消息。消息首先使用外部消息传输被传递至参与者A6“Mike”,然后使用参与者消息传输,从参与者A6“Mike”传递至参与者A7“Mike-Tom-Chat”,并且转发至参与者A5“Tom”,并且使用外部消息传输最终传递至客户端C5“Tom”。现在Tom能够使用在其用户设备上的其聊天应用程序来读取消息。通常,在聊天示例中,用户参与者负责处理对于客户端C的进入消息和输出消息,并且在相关消息传输线程之间转发消息。
图2进一步示出用户Linda-客户端C3“Linda”连接至用户参与者“Linda”A3(其连接至游戏参与者A2“Linda-Game”)的示例性实施例。在该示例中,用户Linda、客户端C3“Linda”或用户参与者A3“Linda”未连接至任何其它用户参与者,而仅连接至游戏参与者A2“Lindagame”。
图3是描述了参与者A和虚拟节点VN如何与节点N相关联的示例性方法的流程图。节点N的数量可以从一个至n个变化。虚拟节点VN使用数学确定(30)与节点N相关联。参与者A使用数学确定(31)与虚拟节点VN相关联。在两个步骤(30和31)中的数学确定可以使用相同的方法或不同的方法。数学确定可以包括用于映射的一致性散列或其它合适的方法。应注意,在一些实施例中,参与者A可以直接与节点N相关联,而不需要虚拟节点VN。图3中的箭头示出本发明的至少一些实施例可以在定义集群CL时实现并且本发明的至少一些实施例可以在现有集群CL中传递消息时实现。
图1和图2中简化的示例示出其中仅存在少量客户端C的情况。当客户端C的数量增加并且因此参与者A和节点N的数量增加时,情况变得更加复杂。特别地,由于客户端C可以如其所愿加入并且离开集群CL,并且开始/停止使用应用程序(生成/结束参与者A),所以迅速并且有效地处理消息传输很重要。
当根据至少一些实施例来设计集群CL时,估计的用户的数量可以被估计,并且然后计算需要多少节点N来进行集群CL需能够处理的所有处理。当建立集群CL时,节点N的数量被限定,并且每个节点N具有单个标识信息,例如可以为IP地址、分配给节点N的流水号、名称或其它合适的方式。
节点N与虚拟节点VN的数量相关联。每个虚拟节点VN具有限定如何组织虚拟节点VN的单个地址信息。与虚拟节点VN有关的术语地址信息可以是虚拟节点VN信息如何被组织在节点N中或集群CL中的抽象定义。
如果节点N的数量需要改变,则一些虚拟节点VN使用一致性散列算法与新的节点N相关联以使数量或重映射最小化。节点N例如通过监测集群大小(例如,监测IP地址空间)来获得节点N的当前数量的信息,或者可以存在通知节点N关于集群大小改变的控制系统。
当客户端C希望例如连接至集群CL中的游戏参与者时,消息通过客户端C的用户设备中运行的应用程序生成,并且使用外部消息传输被发送至集群CL中的任何节点N。消息直接通过确定游戏参与者如何被分配给虚拟节点VN以及虚拟节点如何被分配给节点N来重定向至正确的节点N上的正确的虚拟节点VN。如果当创建参与者A时对于所有的客户端C和其它实体使用相同的方法,则无需更新和共享包括所有参与者A的地址信息的明确的路由表。路由表为查找表,其被用于存储和共享集群CL中的参与者A的地址信息。至少一个实施例的一个益处在于,无需同步关于每个虚拟节点VN和参与者A如何在集群CL中相关联的路由表。当映射一致时,总是仅使用数学算法来确定正确的虚拟节点VN和正确的节点N,这消除了对于共享的映射表的需要。可以在进行中计算映射,或者可以预先确定映射。节点N知道哪个虚拟节点VN属于哪个节点N,但是节点N不必以另外的方式相互作用。管理消息传输的另一方式是总是将所有消息发送至所有参与者A,这将对于参与者A和消息传输路径产生过度的负荷。
图4示出示例性实施例,其中消息的传递被示出为流程图。在步骤41中,接收或获取消息,该消息包括标识消息中的发送者参与者和接收者参与者的至少发送者参与者ID和接收者参与者ID。在步骤42中,使用数学算法以确定哪个虚拟节点VN(第一虚拟节点)与发送者参与者ID相关联,以及哪个虚拟节点VN(第二虚拟节点)与接收者参与者ID相关联。应当注意的是,步骤42中参与者ID的确定可以以任意次序完成。
在步骤43中,检查发送者参与者ID和接收者参与者ID是否与相同的节点N相关联。
如果是与相同的节点N相关联-则消息被传递至第二虚拟节点VN-步骤44且进一步至接收者参与者-步骤45。
如果不是-则使用数学算法确定哪个节点N与第二虚拟节点VN相关联-步骤46。
在后一种情形下,消息被传递至缓冲器系统中的缓冲器-步骤47。然后从缓冲器传递或获取消息至第二虚拟节点VN-步骤48,且最后被传递至接收者参与者-步骤49。
图5示出示例性实施例,其中获取包括参与者ID的消息(50)。参与者ID至少部分地标识参与者A。在至少一个数学算法中利用参与者ID来确定参与者的地址信息(51),以及使用地址信息将消息传递至参与者(52)。
图6示出示例性节点设备。如之前所述,节点N指的是物理的或虚拟的计算实体,其能够管理与其相关联的虚拟节点N。计算实体可以是能够处理数据的设备。它可以是服务器设备、或运行聊天应用程序或游戏应用程序等的计算机等。节点设备60包括用于存储信息的存储器(MEM)61,该信息涉及例如与它相关联的虚拟节点、如何处理消息的指令等。存储器61可包括易失性或非易失性存储器,例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑等。
节点设备60还包括用于处理指令和运行计算机程序的一个或多个处理器单元(CPU)62,以及用于发送和接收消息的接口单元(IF)63。
图7示出可以实施本发明的至少一个实施例的示例性网络系统。所示网络系统包括节点设备60、用户设备72、服务器设备73和网络71。这里,网络71表示硬件和软件部件的任意组合,其能够使得在一个通信端点的过程能够发送信息至位于另一远程通信端点处的另一过程或从位于另一远程通信端点处的另一进程接收信息。网络61可以是,例如个人局域网、本地局域网、家庭网、存储区域网、校园网、中枢网络、城域网、广域网、企业专用网、虚拟专用网、或互联网,或者这些网络的任意组合。图7的示例性网络系统是示出仅仅一个节点设备60、用户设备72和服务器设备73的简化图示。如前述所定义的,设备的数量可以改变。设备被示出作为分离的单元,但是在一些实施例中,节点设备60、用户设备72或服务器设备73中的任何设备可以实现为相同的设备。例如,服务器设备73可以实现在节点设备60上用作消息服务器、游戏服务器、聊天室服务器等。
尽管本发明的各个方面被示出和描述为框图、消息流程图、流程图和逻辑流程图、或使用一些其它图示,但可以很好理解的是,示出的单元、框、设备、系统元件、程序和方法可以实现为,例如硬件、软件、固件、专用电路或逻辑、计算设备或它们的一些组合。
对本领域的技术人员而言显而易见的是,随着技术的进步,本发明的基本思想可以各种不同的方式实现。因此,本发明及其实施例并不局限于上述示例,而是可以在权利要求书的范围之内变化。
Claims (12)
1.一种用于在节点的可扩展集群中的参与者之间传递消息的方法,该方法包括:
由所述节点中的一个节点接收消息,所述消息从第一参与者被发送至第二参与者,所述消息包含标识所述第一参与者的第一参与者ID和标识所述第二参与者的第二参与者ID;
其特征在于,所述方法还包括:
在所述一个节点中,通过使用第一数学算法,仅利用所述第一参与者ID和所述第二参与者ID来确定用于所述第一参与者和所述第二参与者的地址信息,其中所述第一数学算法被配置成确定所述第一参与者与哪个虚拟节点相关联以及所述第二参与者与哪个虚拟节点相关联;以及
确定所述第一参与者和所述第二参与者是否与相同的节点相关联:
如果所述第一参与者和所述第二参与者与相同的节点相关联,则通过使用所述地址信息来将所述消息传递至所述第二参与者,以及
如果所述第一参与者和所述第二参与者不与相同的节点相关联,则通过使用第二数学算法来确定第二节点,其中所述第二节点与关联于所述第二参与者的虚拟节点相关联,并且将所述消息传递至缓冲器系统以经由所述关联于所述第二参与者的虚拟节点而进一步将所述消息传递至所述第二参与者。
2.根据权利要求1所述的方法,其中,所述节点具有与它相关联的至少一个虚拟节点。
3.根据权利要求2所述的方法,确定所述至少一个虚拟节点的地址信息,并且确定与所述虚拟节点相关联的节点的地址信息。
4.根据权利要求1所述的方法,其中,所述地址信息包括所述节点的地址信息。
5.根据权利要求1-4中任一项权利要求所述的方法,其中,在所述确定时使用一致性散列算法。
6.根据权利要求1-4中任一项权利要求所述的方法,还包括首先将所述消息传递至缓冲器中的与所述虚拟节点相关联的区段。
7.一种存储介质,其上存储有计算机程序产品,所述计算机程序产品包括一条或多条指令的一个或多个序列,当所述一条或多条指令由一个或多个处理器执行时,致使用于在节点的可扩展集群中的参与者之间传递消息的设备去至少执行至少以下步骤:
由所述节点中的一个节点接收消息,所述消息从第一参与者被发送至第二参与者,所述消息包括标识所述第一参与者的第一参与者ID和标识所述第二参与者的第二参与者ID;
其特征在于,所述一条或多条指令还致使所述设备执行以下步骤:
在所述一个节点中,通过使用第一数学算法,仅利用所述第一参与者ID和所述第二参与者ID来确定用于所述第一参与者和所述第二参与者的地址信息,其中所述第一数学算法被配置成确定所述第一参与者与哪个虚拟节点相关联以及所述第二参与者与哪个虚拟节点相关联;
确定所述第一参与者和所述第二参与者是否与相同的节点相关联:
如果所述第一参与者和所述第二参与者与相同的节点相关联,则通过使用所述地址信息来将所述消息传递至所述第二参与者,和
如果所述第一参与者和所述第二参与者不与相同的节点相关联,则通过使用第二数学算法来确定第二节点,其中所述第二节点与关联于所述第二参与者的虚拟节点相关联,并且将所述消息传递至缓冲器系统以经由所述关联于所述第二参与者的虚拟节点而进一步将所述消息传递至所述第二参与者。
8.根据权利要求7所述的存储介质,其中,所述地址信息包括所述节点的地址信息。
9.根据权利要求7所述的存储介质,其中,确定至少一个虚拟节点的地址信息,并且确定与所述虚拟节点相关联的节点的地址信息。
10.根据权利要求7-9中任一项权利要求所述的存储介质,其中,在所述确定时使用一致性散列算法。
11.根据权利要求7至9中任一项所述的存储介质,其中,首先将所述消息传递至缓冲器中的与所述虚拟节点相关联的区段。
12.一种用于在节点的可扩展集群中的参与者之间传递消息的设备,其包括用于以下的装置:
由所述节点中的一个节点接收消息,所述消息从第一参与者被发送至第二参与者,所述消息包括标识所述第一参与者的第一参与者ID和标识所述第二参与者的第二参与者ID;
其特征在于,所述设备还包括用于以下的装置:
在所述一个节点中通过使用第一数学算法、仅利用所述第一参与者ID和所述第二参与者ID来确定用于所述第一参与者和所述第二参与者的地址信息,其中所述第一数学算法被配置成确定所述第一参与者与哪个虚拟节点相关联以及所述第二参与者与哪个虚拟节点相关联;
确定所述第一参与者和所述第二参与者是否与相同的节点相关联:
如果所述第一参与者和所述第二参与者与相同的节点相关联,则通过使用所述地址信息来将所述消息传递至所述第二参与者,和
如果所述第一参与者和所述第二参与者不与相同的节点相关联,则通过使用第二数学算法来确定第二节点,其中所述第二节点与关联于所述第二参与者的虚拟节点相关联,并且将所述消息传递至缓冲器系统以经由所述关联于所述第二参与者的虚拟节点而进一步将所述消息传递至所述第二参与者。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13198910.5A EP2887589A1 (en) | 2013-12-20 | 2013-12-20 | Stateless message routing |
EP13198910.5 | 2013-12-20 | ||
PCT/FI2014/051015 WO2015092139A1 (en) | 2013-12-20 | 2014-12-17 | Stateless message routing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105960791A CN105960791A (zh) | 2016-09-21 |
CN105960791B true CN105960791B (zh) | 2019-05-07 |
Family
ID=49916884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480062434.2A Active CN105960791B (zh) | 2013-12-20 | 2014-12-17 | 无状态消息传输路由 |
Country Status (7)
Country | Link |
---|---|
EP (2) | EP2887589A1 (zh) |
KR (1) | KR20160102231A (zh) |
CN (1) | CN105960791B (zh) |
CA (1) | CA2931306A1 (zh) |
PT (1) | PT3085062T (zh) |
RU (1) | RU2679340C1 (zh) |
WO (1) | WO2015092139A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107135146B (zh) * | 2017-04-27 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 信息的显示方法和装置 |
CN109729127A (zh) * | 2017-10-31 | 2019-05-07 | 北京国双科技有限公司 | 数据传输方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101352002A (zh) * | 2006-01-04 | 2009-01-21 | 微软公司 | 使用可缩放对等组来优化通信 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7359335B2 (en) * | 2003-07-18 | 2008-04-15 | International Business Machines Corporation | Automatic configuration of network for monitoring |
US7466810B1 (en) * | 2004-12-20 | 2008-12-16 | Neltura Technology, Inc. | Distributed system for sharing of communication service resources between devices and users |
EP1894371A1 (en) * | 2005-05-18 | 2008-03-05 | Ninety9.com PTY Ltd. | Dynamic address mapping |
US7480281B2 (en) * | 2005-11-30 | 2009-01-20 | International Business Machines Corporation | Method for improving cluster bring-up in a distributed topology liveness system |
CN100502572C (zh) * | 2006-11-30 | 2009-06-17 | 华为技术有限公司 | 增大多媒体消息业务系统容量的方法及系统 |
SG159399A1 (en) * | 2008-08-13 | 2010-03-30 | Smart Comm Inc | Message routing platform |
GB2478662B (en) * | 2008-09-12 | 2012-05-16 | Computational Res Lab Ltd | Cluster computing |
US8584228B1 (en) * | 2009-12-29 | 2013-11-12 | Amazon Technologies, Inc. | Packet authentication and encryption in virtual networks |
US20120011068A1 (en) * | 2010-07-09 | 2012-01-12 | United States Postal Service | System and method of electronic and physical mail categorization and targeted delivery |
FI125972B (fi) * | 2012-01-09 | 2016-05-13 | Tosibox Oy | Laitejärjestely ja menetelmä kiinteistöjen etähallinnassa käytettävän tiedonsiirtoverkon luomiseksi |
US8996652B2 (en) * | 2012-06-15 | 2015-03-31 | Citrix Systems, Inc. | Systems and methods for cluster LAG |
-
2013
- 2013-12-20 EP EP13198910.5A patent/EP2887589A1/en not_active Withdrawn
-
2014
- 2014-12-17 CN CN201480062434.2A patent/CN105960791B/zh active Active
- 2014-12-17 KR KR1020167019340A patent/KR20160102231A/ko active Search and Examination
- 2014-12-17 EP EP14871277.1A patent/EP3085062B1/en active Active
- 2014-12-17 PT PT14871277T patent/PT3085062T/pt unknown
- 2014-12-17 RU RU2016129483A patent/RU2679340C1/ru active
- 2014-12-17 CA CA2931306A patent/CA2931306A1/en not_active Abandoned
- 2014-12-17 WO PCT/FI2014/051015 patent/WO2015092139A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101352002A (zh) * | 2006-01-04 | 2009-01-21 | 微软公司 | 使用可缩放对等组来优化通信 |
Non-Patent Citations (1)
Title |
---|
An Actor-Based Programming System;Roy J. Byrd等;《ACM》;19821231;67-78 |
Also Published As
Publication number | Publication date |
---|---|
RU2016129483A (ru) | 2018-01-25 |
EP3085062A4 (en) | 2017-08-16 |
CN105960791A (zh) | 2016-09-21 |
PT3085062T (pt) | 2019-05-28 |
WO2015092139A1 (en) | 2015-06-25 |
CA2931306A1 (en) | 2015-06-25 |
KR20160102231A (ko) | 2016-08-29 |
EP2887589A1 (en) | 2015-06-24 |
RU2679340C1 (ru) | 2019-02-07 |
EP3085062B1 (en) | 2019-02-06 |
EP3085062A1 (en) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xiao et al. | QoE and power efficiency tradeoff for fog computing networks with fog node cooperation | |
US8510562B2 (en) | Content distribution with mutual anonymity | |
CN103916311B (zh) | 一种信息传输控制方法,装置及系统 | |
CN106549878B (zh) | 一种业务分流方法和装置 | |
KR20190114023A (ko) | 패킷 기반 데이터 통신의 디바이스 식별자 의존적 오퍼레이션 프로세싱 | |
CN105531979B (zh) | 一种用于在客户端与服务器之间交换数据的方法及服务器 | |
JP2017529793A5 (zh) | ||
CN110392071A (zh) | 流媒体资源的上传、下载方法、分发系统及流媒体服务器 | |
CN105208053A (zh) | 一种实现负载均衡的方法、装置及负载均衡服务系统 | |
Thilakarathna et al. | MobiTribe: Cost efficient distributed user generated content sharing on smartphones | |
CN108738071A (zh) | 一种资源建立的方法及装置 | |
US9838482B1 (en) | Maintaining client/server session affinity through load balancers | |
CN103401946A (zh) | Http上传加速方法和系统 | |
WO2022111646A1 (zh) | 一种算力感知的会话管理方法及通信装置 | |
CN115276976B (zh) | 量子密钥分发方法、装置及电子设备 | |
Liu et al. | Object-oriented network: A named-data architecture toward the future Internet | |
CN109474713A (zh) | 报文转发方法和装置 | |
Cai et al. | Decentralized control of distributed cloud networks with generalized network flows | |
CN105960791B (zh) | 无状态消息传输路由 | |
US10523619B2 (en) | Stateless message routing | |
Noguchi et al. | A secure secret key-sharing system for resource-constrained iot devices using mqtt | |
CN115865334B (zh) | 量子密钥分发方法、装置及电子设备 | |
Tsai et al. | WaterChat: A Group Chat Application Based on Opportunistic Mobile Social Networks. | |
CN110401557A (zh) | 一种终端设备的网络配置方法、装置及服务器 | |
CN110247960A (zh) | 安全多方计算的实现方法、装置、计算机设备和存储介质 |
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 |