CN111131443B - 一种任务推送方法和*** - Google Patents
一种任务推送方法和*** Download PDFInfo
- Publication number
- CN111131443B CN111131443B CN201911334639.2A CN201911334639A CN111131443B CN 111131443 B CN111131443 B CN 111131443B CN 201911334639 A CN201911334639 A CN 201911334639A CN 111131443 B CN111131443 B CN 111131443B
- Authority
- CN
- China
- Prior art keywords
- client
- gateway server
- task
- message
- gateway
- 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
Images
Classifications
-
- 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/50—Network services
- H04L67/55—Push-based network services
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种任务推送方法和***,涉及计算机技术领域,其中,方法包括:网关服务器集群中的各网关服务器与各客户端分别建立连接,并在所述各网关服务器本地存储对应客户端的信息;所述网关服务器集群中的各网关服务器调用后台服务器,对后台服务器的客户端状态进行更新;所述后台服务器接收到派发的任务时,根据所述任务的类型确定对应的服务层,并通过所述服务层组装任务数据并查找满足所述任务条件的客户端集合,并以消息的形式将任务数据以及客户端集合发送至消息队列;根据客户端集合在本地查找对应的客户端,并将任务数据发送至对应的客户端。该方法实现了支持多业务类型的推送方式,任务消息推送效率更高。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务推送方法和***。
背景技术
现有技术中,推送新任务消息的效率仍处于较低水平,其原因在于所有客户端均连接在一台网关服务器上,导致该网关服务器资源消耗大,降低了请求响应时效,最终影响整个服务性能。同时,现有技术中还无法实现支持多种任务类型的推送方式。
发明内容
本发明实施例提供了一种任务推送方法和***,旨在解决现有技术中的任务推送方法请求响应时效低、无法支持多种任务类型的推送。
第一方面,本发明实施例提供一种任务推送方法,方法包括:
网关服务器集群中的各网关服务器与各客户端分别建立连接,并在所述各网关服务器本地存储对应客户端的信息;
所述网关服务器集群中的各网关服务器调用后台服务器,对后台服务器的客户端状态进行更新;
所述后台服务器接收到派发的任务时,根据所述任务的类型确定对应的服务层,并通过所述服务层组装任务数据并查找满足所述任务条件的客户端集合,并以消息的形式将任务数据以及客户端集合发送至消息队列;
所述网关服务器集群中的网关服务器监听到消息队列中有新的消息时,根据客户端集合在本地查找对应的客户端,并将任务数据发送至对应的客户端。
第二方面,本发明实施例提供一种任务推送***,其包括:后台服务器、网关服务器集群;
所述网关服务器集群中的各网关服务器用于与各客户端分别建立连接,并在所述各网关服务器本地存储对应客户端的信息;所述网关服务器集群中的各网关服务器还用于调用后台服务器,对后台服务器的客户端状态进行更新;所述网关服务器集群中的网关服务器还用于监听到消息队列中有新的消息时,根据客户端集合在本地查找对应的客户端,并将任务数据发送至对应的客户端;
所述后台服务器用于在接收到派发的任务时,根据所述任务的类型确定对应的服务层,并通过所述服务层组装任务数据并查找满足所述任务条件的客户端集合,并以消息的形式将任务数据以及客户端集合发送至消息队列。
本发明实施例提供了一种任务推送方法和***。该方法中,网关服务器集群中的各网关服务器与各客户端分别建立连接,这样,可以避免所有连接集中在一台网关服务器上导致网关服务器资源消耗骤增、请求响应时效降低等问题,达到提升整体服务性能、任务消息推送效率更高的效果。后台服务器可根据任务类型确定对应服务层,并通过服务层组装任务数据,然后以消息的形式发送至消息队列;最终由网关服务器将任务数据发送至对应的客户端,这样实现了支持多业务类型的推送方式。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的任务推送方法的流程示意图;
图2为本发明实施例提供的任务推送方法的子流程示意图;
图3为本发明实施例提供的任务推送方法的另一子流程示意图;
图4为本发明实施例提供的任务推送方法的另一子流程示意图;
图5为本发明实施例提供的任务推送方法的另一子流程示意图;
图6为本发明实施例提供的任务推送方法的另一子流程示意图;
图7为本发明实施例提供的任务推送方法的应用场景示意图;
图8为本发明实施例提供的任务推送装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本发明实施例提供的一种任务推送方法的流程示意图,方法可以包括步骤S101~S104:
S101、网关服务器集群中的各网关服务器与各客户端分别建立连接,并在所述各网关服务器本地存储对应客户端的信息;
本实施例中,网关服务器集群表示由多个网关服务器组成的集群(结合图7所示),所述网关服务器集群是指水平地扩展网关服务器的数量,通过增加更多的机器来处理更多的请求,所述网关服务器集群中的网关服务器基本配置相同,但各网关服务器根据需要其订阅的消息主题可能有所不同,例如网关服务器1订阅消息主题1,网关服务器2订阅消息主题2。在配置网关服务器集群时,可以将网关服务器集群设置为单节点网关服务器集群,或者多节点网关服务器集群。在单节点网关服务器集群中,可以通过单个节点来管理网关服务器集群中的所有网关服务器;在多节点网关服务器集群中,各节点网关服务器与其他节点网关服务器触发的修改同步,从而使各网关服务器保持一致性。
在本步骤中,网关服务器集群中的各网关服务器与各客户端分别建立连接,所以客户端的连接压力分摊在各网关服务器上,所以使流量分布更均匀,降低单服务器压力,减少宕机风险,提高整个集群服务性能。
在一实施例中,如图2所示,所述步骤S101包括步骤S201~S202:
S201、网关服务器集群中的网关服务器接收到客户端的连接请求后,与对应客户端建立websocket连接;
S202、在建立websocket连接后,所述网关服务器分发一会话ID至客户端,并在本地存储对应客户端的会话ID。
所述客户端与网关服务器的连接方式可以是websocket连接。具体地,客户端可调用API与网关服务器集群中的网关服务器建立websocket连接。在建立websocket连接后,网关服务器可以在本机存储客户端的信息,其中的信息是用来标识客户端,以方便后续查找对应的客户端,并推送消息至指定的客户端。在一个具体应用场景中,所述的信息是指sessionID(会话ID),sessionID表示认证用户身份的凭证,它具备几个特点:用户不可用任意篡改、不能获取其他客户端sessionID。具体地,网关服务器可先分发一会话ID至客户端,同时在本地存储对应客户端的sessionID。
在一实施例中,如图3所示,所述步骤S201包括步骤S301~S302:
S301、当接收到所述客户端的连接请求后,从网关服务器集群中确定一个与之对应的网关服务器;
S302、利用确定出的所述网关服务器与对应所述客户端建立websocket连接。
在所述网关服务器集群中,各网关服务器分别与对应的客户端建立连接。具体地,每一客户端只与所述网关服务器集群中的其中一个网关服务器建立连接,这样,可以避免所有连接集中在一台网关服务器上,导致网关服务器资源消耗骤增、请求响应时效降低等问题,达到提升整体服务性能的效果。需说明的是,每一客户端只与所述网关服务器集群中的其中一个网关服务器建立连接,但每一网关服务器并不只与一个客户端建立连接,即一个网关服务器可以同时与多个客户端建立连接,由于建立连接的客户端数量分摊到各网关服务器上,所以每一网关服务器所连接的客户端数量相对于传统方案大大减少,可确保网关服务器资源合理分配使用,达到及时响应请求的目的。每一网关服务器所连接的客户端数量可以根据总的网关服务器数量以及所需连接的客户端数量来确定,总的原则是使各网关服务器能够尽量平摊所需连接的客户端数量,使各网关服务器均能快速响应请求。
在一实施例中,所述步骤S301包括:
当接收到所述客户端的连接请求后,根据网关服务器集群中各网关服务器所连接的客户端数量,从网关服务器集群中确定一个与所述客户端对应的网关服务器,使各网关服务器均摊所连接的客户端数量。
为了尽量平摊网关服务器所需连接的客户端数量,可以对网关服务器进行负载均衡处理,例如将网关服务器集群中的各网关服务器各设置一从0至n-1的模数,其中的n即为网关服务器集群中的网关服务器数量,例如目前网关服务器的数量为5,那么各网关服务器模数依次为0、1、2、3和4。然后可以将所需连接的客户端关键字段(如sessionID或者其他能对客户端进行唯一标识的关键字段)进行hash处理,再将处理后得到的hash值对网关服务器的总数量取模,然后将取模结果与各网关服务器的模数进行匹配,确定客户端连接至哪个网关服务器,这样在海量的客户端需要连接时,可以确保平均分配所需连接的客户端,避免网关服务器集群中的某个或某些网关服务器资源消耗过大。例如,某一取模结果为3,那么确定客户端连接至模数为3的网关服务器。也就是说,基于网关服务器集群,本实施例对网关服务器集群自身进行了负载均衡处理,使得网关服务器能够很好的均摊来自客户端的处理压力。然后每一网关服务器也对各类型的业务进行了负载均衡处理,转发处理多个消息,推送给对应的客户端,实现自身功能。
S102、所述网关服务器集群中的各网关服务器调用后台服务器,对后台服务器的客户端状态进行更新;
在网关服务器与客户端建立连接后,表示客户端当前处于在线状态,此时可调用后台服务器接口,对后台服务器存储的客户端状态进行更新,即将客户端状态更新为在线状态。对后台服务器存储的客户端状态更新的一个目的在于,当接收到任务时,可以确定哪些在线的客户端可以处理相应的任务。
S103、所述后台服务器接收到派发的任务时,根据所述任务的类型确定对应的服务层,并通过所述服务层组装任务数据并查找满足所述任务条件的客户端集合,并以消息的形式将任务数据以及客户端集合发送至消息队列;
本步骤中,根据任务的类型采用不同的服务层进行处理,这样可以降低各业务的耦合性,降低维护成本,提升服务端质量。具体的,服务层在接收到任务后可组装任务数据并查找客户端集合,以便将任务数据和查找到的客户端集合发送至消息队列。
在一实施例中,如图4所示,所述步骤S103包括S401~S405:
S401、所述后台服务器接收到派发的任务时,获取任务的类型;
S402、根据所述任务的类型匹配对应的服务层;
S403、通过所述服务层组装任务数据;
S404、查找满足所述任务的条件并且在线的客户端并组成客户端集合;
S405、通过所述服务层以消息的形式将所述任务数据以及客户端集合发送至消息队列。
本实施例中,所述的任务可以是业务,如订单业务。所述后台服务器接收到第三方服务派发的任务时,会先确定任务的类型,然后基于任务的类型确定对应的服务层。换言之,每个类型的任务都有相应的服务层来提供服务,这样可使本实施例支持多种类型的任务派发,也使各任务的派发更易于管理。
如果后台服务器中不存在与该任务类型对应的服务层,则需要创建一个新的服务层,专门用来对该类型任务进行处理。服务层所提供的服务包括组装任务数据,例如对于年检***业务,那么组装的任务数据包括订单号和车牌号。
同时所述服务层所提供的服务还包括查找满足所述任务条件的客户端集合,所查找的客户端集合是指能够满足处理所述任务的客户端构成的集合。如查找到满足所述任务条件的集合为{客户端A,客户端B,客户端C}。需说明的是,由于客户端是指为用户提供本地服务的程序,也可称为用户端,一般情况下,用户均需要使用对用户进行唯一标识的用户ID,用户可利用用户ID来登录客户端,然后使用客户端提供的本地服务。所以本实施例中所提到的客户端集合,实质上是使用相应客户端的用户的集合,所以相应的客户端集合,也可以使用用户ID集合来表示,如查找到满足所述任务条件的集合为{用户a,用户b,用户c},其中a、b、c分别表示各用户的用户ID。当然,也可以采用其他标识来进行表示,例如前述的sessionID,只需达到与对应的用户或客户端一一对应的目的即可。本实施例中,所述的用户是指能够对任务进行及时处理的服务提供者。
由于之前已经在后台服务器对客户端状态进行更新,而派发任务时,需要及时处理任务,所以在一具体应用场景中,所述任务条件应包括客户端在线,即所查找到的客户端集合中的任意一个客户端应处于在线状态,以便派发任务后,可以由分配到任务的用户及时进行处理。
在一实施例中,如图5所示,所述步骤S405包括S501~S502:
S501、通过所述服务层将所述任务数据以及客户端集合组装为消息;
S502、将消息发送至指定消息主题下的消息队列。
在组装好任务数据以及查找到客户端集合后,可以将这些信息以消息的形式发送到消息队列中。
本实施例中,可以创建一个或多个消息主题,所述消息主题下具有对应的消息队列,在发送任务数据以及客户端集合的消息时,可将消息发送至消息主题下的消息队列中,具体地,还可以为每一种类型的任务创建一个消息主题,这样不同类型的任务都会有一个对应的消息主题,每个消息主题下的消息属于同一个类型,实现对消息的分类和有效管理。当然,一个类型的任务也可以设置一个或几个匹配的消息主题,不同类型的任务均可以消息的形式发送至一个或几个消息主题下的消息队列中。
S104、所述网关服务器集群中的网关服务器监听到消息队列中有新的消息时,根据客户端集合在本地查找对应的客户端,并将任务数据发送至对应的客户端。
在一实施例中,如图6所示,所述步骤S104包括步骤S601~S604:
S601、当所述网关服务器集群中的网关服务器订阅所述消息主题时,使用广播消费模式对所述消息进行消费处理;
S602、对所述消息进行解析,获取其中的任务数据和客户端集合;
S603、根据客户端集合中的各客户端的信息与本地存储的客户端的信息进行匹配;
S604、根据匹配结果将任务数据发送至匹配出的客户端。
所述网关服务器对消息队列进行实时监听,对所述消息队列使用广播消费方式进行处理,即订阅了上述消息主题的每台网关服务器都实时消费新消息,根据消息中的客户端集合查找本地是否存储有对应的客户端信息。
具体的,当消息队列有新的消息时,订阅相应消息主题的网关服务器都会实时监听到新的消息,并对消息队列中的新消息进行消费,也就是接收新的消息,并对消息的内容进行解析,获取其中的客户端集合以及任务数据,由于在网关服务器本地存储有客户端的信息,所以可以对二者进行比对,例如对客户端集合中的每一个客户端,均在本地进行查找,判断是否存储有对应客户端的信息。
在广播消费模式下,每个消息主题下的所有消息都需要被订阅该消息主题的网关服务器处理。在此模式下,可以保证每条消息至少被订阅对应消息主题的每台网关服务器消费一次,相对于其他消费模式,如集群模式,本实施例可确保每条消息均被多个订阅的网关服务器处理,这样对应客户端就能及时处理相应的消息,不会由于某个网关服务器的宕机等问题,而导致消息无法及时处理的问题。本实施例中,采用所述的广播消费模式,是因为其适合于分布式***中,网关服务器集群在消费消息时,并不知道该消息对应的客户端连接在哪一台网关服务器上。所以此时通过广播消费,网关服务器集群中订阅相应消息主题的每一台网关服务器都可以消费到消息。在决定向客户端推送通知之前会判断当前网关服务器本地中是否有该客户端的信息,如果有则推送。如果该客户端的信息未存储在当前网关服务器本地,则丢弃相应的消息,即将所述消息废弃不做任何处理。
由于网关服务器可能存储有多个客户端的信息,而客户端集合中的客户端也可能有多个,所以可以基于客户端集合中每一个客户端,在网关服务器本地查找是否有对应客户端的信息,若有,则将任务数据发送至该客户端,若没有则基于客户端集合中下一个客户端,在网关服务器本地查找是否有对应客户端的信息,以此类推,直至对客户端集合中每一个客户端均判断完。
一般来说,一个网关服务器只接收一种消息主题下的消息,这样做的好处是,大部分客户端一般来说只会提供一种或少数几种的服务,所以只需要接收一类或少数几类的消息,
所述网关服务器在发送任务数据之前,还可对所述任务数据进行重新组装,使发送给客户端的任务数据满足客户端要求,例如可对任务数据的格式进行少许修改,使之更符合客户端的任务要求。
请参阅图8,图8为本发明实施例提供的一种任务推送***700的示意性框图,其包括:后台服务器710、网关服务器集群720;
所述网关服务器集群720中的各网关服务器用于与各客户端分别建立连接,并在所述各网关服务器本地存储对应客户端的信息;所述网关服务器集群720中的各网关服务器还用于调用后台服务器710,对后台服务器的客户端状态进行更新;所述网关服务器集群720中的网关服务器还用于监听到消息队列中有新的消息时,根据客户端集合在本地查找对应的客户端,并将任务数据发送至对应的客户端;
所述后台服务器710用于在接收到派发的任务时,根据所述任务的类型确定对应的服务层,并通过所述服务层组装任务数据并查找满足所述任务条件的客户端集合,并以消息的形式将任务数据以及客户端集合发送至消息队列。
该***实现了支持多业务类型的推送方式,任务消息推送效率更高。
在一实施例中,所述网关服务器集群720中的网关服务器还用于:接收到客户端的连接请求后,与对应客户端建立websocket连接;在建立websocket连接后,所述网关服务器分发一会话ID至客户端,并在本地存储对应客户端的会话ID。
在一实施例中,所述网关服务器集群720中的网关服务器还用于:当接收到所述客户端的连接请求后,从网关服务器集群中确定一个与之对应的网关服务器;利用确定出的所述网关服务器与对应所述客户端建立websocket连接。
在一实施例中,所述网关服务器集群720中的网关服务器还用于:当接收到所述客户端的连接请求后,根据网关服务器集群中各网关服务器所连接的客户端数量,从网关服务器集群中确定一个与所述客户端对应的网关服务器,使各网关服务器均摊所连接的客户端数量。
在一实施例中,所述后台服务器710还用于:接收到派发的任务时,获取任务的类型;根据所述任务的类型匹配对应的服务层;通过所述服务层组装任务数据;查找满足所述任务的条件并且在线的客户端并组成客户端集合;通过所述服务层以消息的形式将所述任务数据以及客户端集合发送至消息队列。
在一实施例中,所述后台服务器710还用于:通过所述服务层将所述任务数据以及客户端集合组装为消息;将消息发送至指定消息主题下的消息队列。
在一实施例中,所述网关服务器集群720中的网关服务器还用于:当所述网关服务器集群中的网关服务器订阅所述消息主题时,使用广播消费模式对所述消息进行消费处理;
对所述消息进行解析,获取其中的任务数据和客户端集合;
根据客户端集合中的各客户端的信息与本地存储的客户端的信息进行匹配;
根据匹配结果将任务数据发送至匹配出的客户端。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (2)
1.一种任务推送方法,其特征在于,方法包括:
网关服务器集群中的各网关服务器与各客户端分别建立连接,并在所述各网关服务器本地存储对应客户端的信息;
所述网关服务器集群中的各网关服务器调用后台服务器,对后台服务器的客户端状态进行更新;
所述后台服务器接收到派发的任务时,根据所述任务的类型确定对应的服务层,并通过所述服务层组装任务数据并查找满足所述任务条件的客户端集合,并以消息的形式将任务数据以及客户端集合发送至消息队列;
所述网关服务器集群中的网关服务器监听到消息队列中有新的消息时,根据客户端集合在本地查找对应的客户端,并将任务数据发送至对应的客户端;
所述网关服务器集群中的各网关服务器与各客户端分别建立连接,并在所述各网关服务器本地存储对应客户端的信息,包括:
网关服务器集群中的网关服务器接收到客户端的连接请求后,与对应客户端建立websocket连接;
在建立websocket连接后,所述网关服务器分发一会话ID至客户端,并在本地存储对应客户端的会话ID;
所述网关服务器集群中的网关服务器接收到客户端的连接请求后,与对应客户端建立websocket连接,包括:
当接收到所述客户端的连接请求后,从网关服务器集群中确定一个与之对应的网关服务器;
利用确定出的所述网关服务器与对应所述客户端建立websocket连接;
所述当接收到所述客户端的连接请求后,从网关服务器集群中确定一个与之对应的网关服务器,包括:
当接收到所述客户端的连接请求后,根据网关服务器集群中各网关服务器所连接的客户端数量,从网关服务器集群中确定一个与所述客户端对应的网关服务器,使各网关服务器均摊所连接的客户端数量;确定网关服务器的方法为:将网关服务器集群中的各网关服务器各设置一从0至n-1的模数,其中的n为网关服务器集群中的网关服务器数量,将所需连接的客户端关键字段进行hash处理,再将处理后得到的hash值对网关服务器的总数量取模,然后将取模结果与各网关服务器的模数进行匹配,确定客户端所连接的网关服务器;
所述后台服务器接收到派发的任务时,根据所述任务的类型确定对应的服务层,并通过所述服务层组装任务数据并查找满足所述任务条件的客户端集合,并以消息的形式将任务数据以及客户端集合发送至消息队列,包括:所述后台服务器接收到派发的任务时,获取任务的类型;根据所述任务的类型匹配对应的服务层;通过所述服务层组装任务数据;查找满足所述任务的条件并且在线的客户端并组成客户端集合;通过所述服务层以消息的形式将所述任务数据以及客户端集合发送至消息队列;
所述通过所述服务层以消息的形式将所述任务数据以及客户端集合发送至消息队列,包括:通过所述服务层将所述任务数据以及客户端集合组装为消息;将消息发送至指定消息主题下的消息队列;一个网关服务器只接收一种消息主题下的消息;
所述网关服务器集群中的网关服务器监听到消息队列中有新的消息时,根据客户端集合在本地查找对应的客户端,并将任务数据发送至对应的客户端,包括:当所述网关服务器集群中的网关服务器订阅所述消息主题时,使用广播消费模式对所述消息进行消费处理;对所述消息进行解析,获取其中的任务数据和客户端集合;根据客户端集合中的各客户端的信息与本地存储的客户端的信息进行匹配;根据匹配结果将任务数据发送至匹配出的客户端。
2.一种任务推送***,其特征在于,包括:后台服务器、网关服务器集群;
所述网关服务器集群中的各网关服务器用于与各客户端分别建立连接,并在所述各网关服务器本地存储对应客户端的信息;所述网关服务器集群中的各网关服务器还用于调用后台服务器,对后台服务器的客户端状态进行更新;所述网关服务器集群中的网关服务器还用于监听到消息队列中有新的消息时,根据客户端集合在本地查找对应的客户端,并将任务数据发送至对应的客户端;
所述后台服务器用于在接收到派发的任务时,根据所述任务的类型确定对应的服务层,并通过所述服务层组装任务数据并查找满足所述任务条件的客户端集合,并以消息的形式将任务数据以及客户端集合发送至消息队列;
所述网关服务器集群中的网关服务器还用于接收到客户端的连接请求后,与对应客户端建立websocket连接;在建立websocket连接后,所述网关服务器分发一会话ID至客户端,并在本地存储对应客户端的会话ID;
所述网关服务器集群中的网关服务器还用于当接收到所述客户端的连接请求后,从网关服务器集群中确定一个与之对应的网关服务器;利用确定出的所述网关服务器与对应所述客户端建立websocket连接;
所述网关服务器集群中的网关服务器还用于:当接收到所述客户端的连接请求后,根据网关服务器集群中各网关服务器所连接的客户端数量,从网关服务器集群中确定一个与所述客户端对应的网关服务器,使各网关服务器均摊所连接的客户端数量;确定网关服务器的方法为:将网关服务器集群中的各网关服务器各设置一从0至n-1的模数,其中的n为网关服务器集群中的网关服务器数量,将所需连接的客户端关键字段进行hash处理,再将处理后得到的hash值对网关服务器的总数量取模,然后将取模结果与各网关服务器的模数进行匹配,确定客户端所连接的网关服务器;
所述后台服务器具体用于:接收到派发的任务时,获取任务的类型;根据所述任务的类型匹配对应的服务层;通过所述服务层组装任务数据;查找满足所述任务的条件并且在线的客户端并组成客户端集合;通过所述服务层以消息的形式将所述任务数据以及客户端集合发送至消息队列;
所述通过所述服务层以消息的形式将所述任务数据以及客户端集合发送至消息队列,包括:通过所述服务层将所述任务数据以及客户端集合组装为消息;将消息发送至指定消息主题下的消息队列;一个网关服务器只接收一种消息主题下的消息;
所述网关服务器集群中的网关服务器具体用于:当所述网关服务器集群中的网关服务器订阅所述消息主题时,使用广播消费模式对所述消息进行消费处理;对所述消息进行解析,获取其中的任务数据和客户端集合;根据客户端集合中的各客户端的信息与本地存储的客户端的信息进行匹配;根据匹配结果将任务数据发送至匹配出的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334639.2A CN111131443B (zh) | 2019-12-23 | 2019-12-23 | 一种任务推送方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334639.2A CN111131443B (zh) | 2019-12-23 | 2019-12-23 | 一种任务推送方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111131443A CN111131443A (zh) | 2020-05-08 |
CN111131443B true CN111131443B (zh) | 2023-06-30 |
Family
ID=70501033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911334639.2A Active CN111131443B (zh) | 2019-12-23 | 2019-12-23 | 一种任务推送方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111131443B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769837B (zh) * | 2021-01-13 | 2023-07-04 | 北京洛塔信息技术有限公司 | 基于WebSocket的通信传输方法、装置、设备、***及存储介质 |
CN113766337B (zh) * | 2021-01-15 | 2024-04-05 | 北京京东拓先科技有限公司 | 一种处理信息的方法、装置和*** |
CN113127554A (zh) * | 2021-05-10 | 2021-07-16 | 广州欢网科技有限责任公司 | 接口和后台***之间数据同步方法和*** |
CN115174513B (zh) * | 2022-05-30 | 2024-05-24 | 青岛海尔科技有限公司 | 消息推送方法及装置、存储介质及电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603598A (zh) * | 2015-10-15 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 处理业务请求的方法及装置 |
CN107395767A (zh) * | 2017-08-31 | 2017-11-24 | 北京奇虎科技有限公司 | 基于长连接的消息推送***及方法 |
CN107645508A (zh) * | 2017-10-16 | 2018-01-30 | 深圳市买买提乐购金融服务有限公司 | 一种数据处理***、方法、客户端及服务器 |
CN109889613A (zh) * | 2019-04-24 | 2019-06-14 | 广州吱呀网络科技有限公司 | 一种消息推送方法、装置和移动终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120136968A1 (en) * | 2010-11-30 | 2012-05-31 | Wojcik Christopher R | Subscription-based digital content management and delivery system and method |
-
2019
- 2019-12-23 CN CN201911334639.2A patent/CN111131443B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603598A (zh) * | 2015-10-15 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 处理业务请求的方法及装置 |
CN107395767A (zh) * | 2017-08-31 | 2017-11-24 | 北京奇虎科技有限公司 | 基于长连接的消息推送***及方法 |
CN107645508A (zh) * | 2017-10-16 | 2018-01-30 | 深圳市买买提乐购金融服务有限公司 | 一种数据处理***、方法、客户端及服务器 |
CN109889613A (zh) * | 2019-04-24 | 2019-06-14 | 广州吱呀网络科技有限公司 | 一种消息推送方法、装置和移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN111131443A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111131443B (zh) | 一种任务推送方法和*** | |
CN107465767B (zh) | 一种数据同步的方法和*** | |
US7558859B2 (en) | Peer-to-peer auction based data distribution | |
US10367852B2 (en) | Multiplexed demand signaled distributed messaging | |
EP1704490B1 (en) | Network architecture for data transmission | |
CN111615066B (zh) | 一种基于广播的分布式微服务注册及调用方法 | |
EP2058980A1 (en) | A method, system and device for establishing a peer to peer connection in a p2p network | |
US10313452B2 (en) | Migrating a chat message service provided by a chat server to a new chat server | |
US7844708B2 (en) | Method and apparatus for load sharing and data distribution in servers | |
US20190238352A1 (en) | Communication Method and Apparatus | |
CN102281190A (zh) | 负载均衡装置组网方法以及服务器、客户端接入方法 | |
US8880665B2 (en) | Nonstop service system using voting, and information updating and providing method in the same | |
CN108540367B (zh) | 一种消息处理方法及*** | |
CN105554099A (zh) | 一种采集服务器负载均衡的方法及装置 | |
US7739364B2 (en) | Method and apparatus for dynamically reconfiguring a server system | |
US20070265976A1 (en) | License distribution in a packet data network | |
US10498617B1 (en) | System, method, and computer program for highly available and scalable application monitoring | |
CN109194993B (zh) | 媒体文件分发方法及文件分发平台 | |
JP2002351760A (ja) | サーバ負荷分散装置、サーバ負荷分散方法およびその方法をコンピュータに実行させるプログラム | |
US20140161125A1 (en) | Method, duplication point device, and system for data flow reuse transmission | |
CN112910796B (zh) | 流量管理方法、装置、设备、存储介质以及程序产品 | |
CN116095065A (zh) | 一种基于服务端动态分配的内网办公软件版本下载方法 | |
CN115022110B (zh) | 消息分发方法、可读介质以及电子设备 | |
US20230336379A1 (en) | Visualizer for cloud-based 5g data and telephone networks | |
CN116155975A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |