CN114449031A - 信息获取方法、装置、设备和存储介质 - Google Patents

信息获取方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN114449031A
CN114449031A CN202111466852.6A CN202111466852A CN114449031A CN 114449031 A CN114449031 A CN 114449031A CN 202111466852 A CN202111466852 A CN 202111466852A CN 114449031 A CN114449031 A CN 114449031A
Authority
CN
China
Prior art keywords
topic
message
pointers
subscriber information
subscriber
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
Application number
CN202111466852.6A
Other languages
English (en)
Other versions
CN114449031B (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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202111466852.6A priority Critical patent/CN114449031B/zh
Publication of CN114449031A publication Critical patent/CN114449031A/zh
Application granted granted Critical
Publication of CN114449031B publication Critical patent/CN114449031B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开提供了一种信息获取方法、装置、设备和存储介质,涉及计算机技术领域,具体涉及云计算、物联网等人工智能领域。信息获取方法包括:接收客户端发送的待路由消息的消息主题;若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息;将所述部分订阅者信息,发送给所述客户端。本公开可以扩展同一消息主题的订阅者数量。

Description

信息获取方法、装置、设备和存储介质
技术领域
本公开涉及计算机技术领域,具体涉及云计算、物联网等人工智能领域,尤其涉及一种信息获取方法、装置、设备和存储介质。
背景技术
在软件架构中,发布/订阅是一种消息范式。消息的发布者将消息的订阅者所订阅的消息主题(topic)的消息给上述的订阅者。
为了将消息发送给订阅者,需要先获取订阅者信息。可以采用路由***(或称为消息中间件)获取订阅者信息,路由***中的路由客户端可以将消息主题发送给路由服务端,路由服务端基于消息主题确定主题指针(topic-pointer),再根据数据库中存储的主题指针与订阅者信息之间的关系,获取订阅者信息(subscriber)。
发明内容
本公开提供了一种信息获取方法、装置、设备和存储介质。
根据本公开的一方面,提供了一种信息获取方法,包括:接收客户端发送的待路由消息的消息主题;若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息;将所述部分订阅者信息,发送给所述客户端。
根据本公开的另一方面,提供了一种信息获取方法,包括:向服务端发送待路由消息的消息主题,所述消息主题用以触发服务端响应于所述消息主题对应的全部订阅者信息的数量大于预设值,基于所述消息主题获取所述全部订阅者信息中的部分订阅者信息;接收所述服务端发送的所述部分订阅者信息。
根据本公开的另一方面,提供了一种信息获取装置,包括:第一接收模块,用于接收客户端发送的待路由消息的消息主题;获取模块,用于若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息;第一发送模块,用于将所述部分订阅者信息,发送给所述客户端。
根据本公开的另一方面,提供了一种信息获取装置,包括:第一发送模块,用于向服务端发送待路由消息的消息主题,所述消息主题用以触发服务端响应于所述消息主题对应的全部订阅者信息的数量大于预设值,基于所述消息主题获取所述全部订阅者信息中的部分订阅者信息;第一接收模块,用于接收所述服务端发送的所述部分订阅者信息。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一方面的任一项所述的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述任一方面的任一项所述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述任一方面的任一项所述的方法。
根据本公开的技术方案,可以扩展同一消息主题的订阅者数量。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的示意图;
图2是根据本公开第二实施例的示意图;
图3是根据本公开第三实施例的示意图;
图4是根据本公开第四实施例的示意图;
图5是根据本公开第五实施例的示意图;
图6是根据本公开第六实施例的示意图;
图7是根据本公开第七实施例的示意图;
图8是用来实现本公开实施例的信息获取方法的电子设备的示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
相关技术中,基于主题指针(topic-pointer)一次性获取该topic-pointer对应的全部的订阅者信息(subscribers),如果某个topic的订阅者数量过多,就会造成一次性获取的订阅者信息的数据量过大,会造成网络拥塞、机器性能紧张等问题。为了避免上述问题,往往会限定单一消息主题(topic)的订阅者数量。
图1是根据本公开第一实施例的示意图,本实施例提供一种信息获取方法,该方法包括:
101、接收客户端发送的待路由消息的消息主题。
102、若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息。
103、将所述部分订阅者信息,发送给所述客户端。
如图2所示,路由***可以包括:客户端201、服务端202和数据库203。
其中,客户端可以具体指路由客户端,服务端可以具体指路由服务端。
本实施例的方法可以应用于服务端。
客户端201可以位于发布者侧,从而,基于路由***,发布者可以获知订阅者信息,之后,发布者可以基于订阅者信息,将消息发送给订阅者信息对应的订阅者。
服务端202和数据库203可以位于服务器上,服务端可以为本地服务器或者云端等。服务端202和数据库203可以位于相同或不同的服务器上。
服务端202接收客户端201发送的消息主题(topic),基于预先建立的消息主题与主题指针(topic-pointer)之间的对应关系,确定所接收的topic对应的topic-pointer。一般来讲,一个topic对应唯一的一个topic-pointer。
相关技术中,数据库203中存储topic-pointer与订阅者信息(subscriber)之间的对应关系,一般以键值对(Key-Value,KV)形式存储,即,K为topic-pointer,V为subscriber。一个topic-pointer,可以对应一个或多个(多个是指至少两个)subscriber。一个subscriber包括一个订阅者标识(subscriber-id)和一个订阅者元信息(subscriber-metadata),一次获取一个topic-pointer对应的全部订阅者信息(subscribers)。
消息主题用以标识消息类型,如图3所示,消息主题可以用具有层级关系的字符串表示,同一个订阅者可以订阅不同的消息主题,不同的订阅者可以订阅相同的消息主题。
相关技术中,比如,参见图3的上部分,0x000D为一个主题指针(topic-pointer),inbox1(0)为一个订阅者信息(subscriber),inbox1为订阅者标识(subscriber-id),其中的0代表对应的订阅者元信息(subscriber-metadata)。
假设消息主题为第一行的消息主题(*forex/stock/nyse),则可以确定该消息主题对应的主题指针为0x000D,对应的subscribers包括inbox1(0)和inbox2(1),此时,会一次性读取0x000D对应的全部订阅者信息(subscribers),即inbox1(0)和inbox2(1)。若订阅者信息的数量较多,会造成网络拥塞等问题,为了避免网络拥塞等问题,一般会限制每个主题指针对应的订阅者信息的数量,由于,一般一个消息主题对应一个主题指针,因此,每个消息主题对应的订阅者数量是受限的。
为了扩展同一消息主题的订阅者数量,本实施例中,若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息,并将部分订阅者新发送给客户端。
即,一次获取部分订阅者信息,而不是全部订阅者信息,比如,全部订阅者信息为100个,每次的部分订阅者信息为10个,因此,可以分10次获取全部订阅者信息。从而,基于分批次的获取方式,可以通过多次获取全部订阅者信息,每个消息主题对应的订阅者数量在理论上是不受限的。
本公开实施例中,若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息,可以实现同一消息主题的全部订阅者信息的分批次获取,从而扩展同一消息主题的订阅者数量。
一些实施例中,所述若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息之前,所述方法还包括:接收所述客户端发送的指定数量,所述指定数量用以指示所述部分订阅者信息的数量;相应的,所述若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息,包括:若所述消息主题对应的全部订阅者信息的数量大于预设值,获取数量为所述指定数量的部分订阅者信息。
即,可以由客户端指定部分订阅者信息的数量,服务端将客户端指定数量的部分订阅者信息发送给客户端。
由于客户端还会执行其他操作,比如,消息发送等操作,如果获得较大量的订阅者信息,客户端可能会来不及处理,造成数据积压,占用大量的内存空间,为此,通过客户端指定数量,客户端可以根据自身需求获取合适数量的订阅者信息,以避免数据积压,实现流量控制。
一些实施例中,所述获取所述全部订阅者信息中的部分订阅者信息,包括:获取所述消息主题对应的全部主题指针;获取所述全部主题指针中的待处理主题指针;基于所述待处理主题指针,获取标识信息,所述标识信息包括:所述待处理主题指针,以及,订阅所述待路由消息的部分订阅者的订阅者标识;获取所述标识信息对应的所述部分订阅者的订阅者元信息;基于所述订阅者标识和所述订阅者元信息,获取所述部分订阅者信息。
其中,待处理主题指针可以为全部主题指针,或者为全部主题指针中的部分主题指针。
相关技术中,K对应的数据为topic-pointer,V对应的数据为subscriber-id+subscriber-metadata,因此,一次获取topic-pointer对应的全部订阅者信息。
为了实现一次可以获取部分订阅者信息,本实施例可以对KV进行修改。
如图3的下部分所示,本实施例中,K对应的数据为topic-pointer+subscriber-id,V对应的数据为subscriber-metadata。
即,本实施例中,每个消息主题对应的标识信息不再是主题指针,而是主题指针和订阅者标识组成的数据,或者说,将主题指针作为前缀。
比如,参见图3,假设消息主题为第一行的消息主题(*forex/stock/nyse),此时的主题指针为0x000D,将subscriber-id放到K部分后,此时的消息主题对应的标识信息包括:0x000D+inbox1(图3中用<0x000D><inbox1>表示),以及,0x000D+inbox2(图3中用<0x000D><inbox2>表示),即,标识信息包括主题指针和订阅者标识。
确定标识信息后,可以获取标识信息对应的订阅者元信息,比如,假设标识信息为<0x000D><inbox1>,则对应的订阅者元信息为0。
服务端以标识信息(主题指针+订阅者标识)为单位获取订阅者元信息,比如,可以每次获取图3所示的KV一行(参见后续实施例,每次获取的具体行数可以指定)的数据,从而实现某个消息主题对应的订阅者信息的分批次获取,比如,第一次获取<0x000D><inbox1>对应的订阅者元信息,第二次获取<0x000D><inbox2>对应的订阅者元信息,而不是一次性全部读取,从而理论上每个消息主题可以对应无限个订阅者信息。
服务端获取订阅者元信息后,可以与订阅者标识进行组合,以得到完整的订阅者信息,即,订阅者信息=订阅者标识+订阅者元数据,比如,标识信息<0x000D><inbox1>对应的订阅者元信息为0,由于此时的订阅者标识为inbox1,则可以组合后获得订阅者信息为inbox1(0)。
通过确定消息主题对应的标识信息,标识信息包括主题指针和订阅者标识,以及基于标识信息获得订阅者元信息,可以实现同一消息主题的订阅者信息的分批次获取,从而扩展同一消息主题的订阅者数量。
一些实施例中,所述获取所述消息主题对应的全部主题指针之后,且所述获取所述全部主题指针中的待处理主题指针之前,所述方法还包括:将所述全部主题指针中的至少部分主题指针发送给所述客户端;相应的,所述获取所述全部主题指针中的待处理主题指针,包括:接收所述客户端发送的所述待处理主题指针,所述待处理主题指针为所述客户端在所述至少部分主题指针中确定的。
一些实施例中,所述至少部分主题指针为部分主题指针,所述获取所述消息主题对应的全部主题指针之后,所述方法还包括:将其他主题指针对应的订阅者信息,发送给所述客户端,所述其他主题指针为所述全部主题指针中除了所述部分主题指针之外的主题指针。
一些实施例中,所述接收客户端发送的待路由消息的消息主题之后,所述方法还包括:若所述消息主题对应的全部订阅者信息的数量小于或等于所述预设值,将所述全部订阅者信息发送给所述客户端。
即,服务端可以将至少部分主题指针,和/或,所述至少部分之外的另外部分主题指针对应的订阅者信息,发送给客户端。
其中,虽然一个topic对应一个topic-pointer,但是,某个订阅者订阅的topic可以对应多个topic,从而,基于一个topic可以获得多个topic-pointer。比如,参见图3,某个订阅者订阅的topic为第二行的topic(*forex/stock/#),其中的“#”为通配符,因此,此时的订阅者也同时订阅了第一行的topic(*forex/stock/nyse),因此,基于第二行的topic可以获得第一行的topic对应的topic-pointer以及第二行的topic对应的topic-pointer。
以第二行topic为例,此时的全部主题指针为第一行的topic对应的topic-pointer以及第二行的topic对应的topic-pointer。此时,可以将这两个主题指针都发送给客户端;或者,将其中部分主题指针以及另外的部分主题指针对应的订阅者信息发送给客户端,比如,可以将第一行的topic对应的topic-pointer,以及第一行的topic对应的订阅者信息(inbox2(0))发送给客户端。
假设服务端将某个topic的多个主题指针(topic-pointers)发送给客户端,客户端可以在这多个主题指针中指定待处理主题指针,比如,将接收的全部或部分主题指针选择为待处理主题指针,并发送给服务端。
通过客户端指定待处理主题指针,可以实现基于客户端需求的订阅者信息的分批次获取。
通过服务端在向客户端返回主题指针时,还返回订阅者信息,可以实现客户端对至少部分订阅者信息的预取,提高订阅者信息的获取效率。
通过在全部订阅者信息的数量较少时,一次性获取全部订阅者信息,可以避免客户端对服务端的二次请求,节省资源。
图4是根据本公开第四实施例的示意图,本实施例提供一种信息获取方法,本实施例以客户端执行为例,该方法包括:
401、向服务端发送待路由消息的消息主题,所述消息主题用以触发服务端响应于所述消息主题对应的全部订阅者信息的数量大于预设值,基于所述消息主题获取所述全部订阅者信息中的部分订阅者信息。
402、接收所述服务端发送的所述部分订阅者信息。
一些实施例中,所述接收所述服务端发送的所述部分订阅者信息之前,所述方法还包括:
向所述服务端发送指定数量,所述指定数量用以触发所述服务端获取数量为所述指定数量的所述部分订阅者信息。
一些实施例中,所述向服务端发送待路由消息的消息主题之后,且所述接收所述服务端发送的所述部分订阅者信息之前,所述方法还包括:
接收所述服务端发送的所述消息主题对应的全部主题指针中的至少部分主题指针;
在所述至少部分主题指针中确定待处理主题指针;
将所述待处理主题指针发送给所述服务端,所述待处理主题指针用以触发所述服务端基于所述待处理主题指针获取标识信息,基于所述标识信息获取订阅者元信息,以及基于所述标识信息和所述订阅者元信息获取所述部分订阅者信息,所述标识信息包括:所述待处理主题指针,以及,订阅所述待路由消息的部分订阅者的订阅者标识。
一些实施例中,所述至少部分主题指针为部分主题指针,所述向服务端发送待路由消息的消息主题之后,所述方法还包括:
接收所述服务端发送的其他主题指针对应的订阅者信息,所述其他主题指针为所述全部主题指针中除了所述部分主题指针之外的主题指针。
一些实施例中,所述向服务端发送待路由消息的消息主题之后,所述方法还包括:
接收所述服务端响应于所述消息主题对应的全部订阅者信息的数量小于或等于预设值,发送的所述全部订阅者信息。
其中,客户端执行的流程与服务端执行的流程对应,具体内容及其效果可以参见服务端对应的实施例的相关描述。
本公开实施例中,通过接收服务端发送的部分订阅者信息,可以实现同一消息主题的全部订阅者信息的分批次获取,从而扩展同一消息主题的订阅者数量。
图5是根据本公开第五实施例的示意图,本实施例提供一种信息获取方法,本实施例以客户端与服务端的交互为例,本实施例的方法包括:
501、客户端向服务端发送待路由消息的消息主题。
502、服务端基于预先建立的消息主题与主题指针之间的对应关系,确定所述消息主题对应的主题指针。以及,服务端将主题指针,和/或,预取的订阅者信息,发送给客户端。
其中,由于一个消息主题可以隐含对应多个消息主题,比如,图3第二行的消息主题对应第一行的消息主题以及第二行的消息主题,因此,基于一个消息主题,可以获取一个或多个主题指针。
501-502的过程可以称为主题匹配(matchtopic)过程。
相关技术中,客户端可以将消息主题发送给服务端,服务端将消息主题转换为主题指针,基于主题指针查找全部的订阅者信息,再一次性将全部的订阅者信息返回给客户端。整体上,客户端与服务端存在一次网络请求。
本实施例中,为了实现订阅者信息的分批次获取,此时,可以分为两次网络请求,第一次请求可以获得主题指针,第二次请求基于主题指针获得订阅者信息。
即,服务端基于消息主题获得主题指针后,可以将主题指针全部返回给客户端。或者,
服务端获得主题指针后,若主题指针对应的全部订阅者信息的数量较少,此时,可以直接将全部订阅者信息返回给客户端,而不再需要反馈主题指针,即,也可以通过一次网络请求,返回全部订阅者信息,从而在全部订阅者信息的数量较少时,可以节省一次网络请求,提高性能。
可以理解的是,还可以是返回部分主题指针,以及另外部分主题指针对应的订阅者信息。
其中,服务端基于客户端发送的第一次请求(消息主题)返回的订阅者信息可以称为预取的订阅者信息。
503、客户端将主题指针发送给服务端。
其中,客户端基于主题指针获取订阅者信息的过程可以通过fetchSubscriber服务实现。具体地,客户端接收到服务端发送的主题指针后,可以将主题指针作为参数调用fetchSubscriber服务,fetchSubscriber服务可以位于客户端,fetchSubscriber服务可以将客户端选择的主题指针发送给服务端。其中,客户端发送给服务端的主题指针可以为一个或多个,多个时,可以以列表形式一起发送给服务端。
504、客户端向服务端发送指定数量。
其中,客户端可以分一次或多次发送指定数量(requestsize),比如,第一次发送第一指定数量,第二次发送第二指定数量,每次的指定数量可以相同或不同。
上述是服务端确定出主题指针后,发送给客户端,客户端在获取订阅者信息时再将主题指针发送给服务端。还可以是,服务端确定出主题指针后,并不返回给客户端,而是客户端需要获取订阅者信息时,发送指定数量给服务端,服务端再根据指定数量以及之前确定出的主题指针获取对应的订阅者信息。
505、服务端将指定数量发送给数据库。
其中,本实施例的数据库可以称为重排的KV(orderedKV),其中的K对应topic-pointer+subscriber-id,V对应subscriber-metadata。
506、数据库将KV返回给服务端。
其中,为了保证数据库查找的数据的准确性,在每次基于指定数量获得KV时,可以记录当前的标识信息,当前的标识信息还可以称为游标(cursor),以便下次可以从当前的标识信息的位置继续查找。
比如,数据库中的K对应标识信息,标识信息包括topic-pointer+subscriber-id,假设标识信息用ID1、ID2,ID3等表示,假设当前的指定数量为2,即,数据库可以查找到ID1和ID2对应的数据,此时,可以记录当前的标识信息为ID2,下次从ID2继续查找,即,下次的第一个数量为ID3对应的数据。
数据库查找以及返回给服务端的数据可以称为KV,即,包括K和V,K为主题指针和订阅者标识(topic-pointer+subscriber-id),V为订阅者元信息(subscriber-metadata)。
针对主题指针为多个的场景,可以保证多个主题指针的总体数据量为指定数量,而不限定每个主题指针的数据量。比如,指定数量为10,则可以第一个主题指针对应的数据量为2,第二个主题指针对应的数据量为8;或者,也可以第一个主题指针对应的数据量为5,第二个主题指针对应的数据量为5。
507、服务端将订阅者信息发送给客户端。
其中,服务端获得KV后,可以对K中的订阅者标识以及V中的订阅者元信息进行组合,以获得完整的订阅者信息,即订阅者标识和订阅者元信息(subscriber-id+subscriber-metadata),之后,将订阅者信息(subscriber-id+subscriber-metadata)返回给客户端。
本实施例中,通过对subscriber进行拆分,将subscriber-id放到key中作为后缀,subscriber-meta作为value,即将<topic-pointer+subscriber-id,subscriber-metadata>作为一对KV存储,可以在匹配的时候使用topic-pointer作为前缀进行分批读取,从而单个topic可被海量的subscriber订阅(理论上此数量没有限制),并且不会造成网络阻塞等资源紧张的情况。
可以理解的是,本公开某一实施例中未做详细说明的内容,可以参见其他实施例中的相关描述。
可以理解的是,如无必须的时序限定关系,各实施例中的各步骤之间的时序关系不限定。
图6是根据本公开第六实施例的示意图,本实施例提供一种信息获取装置,该装置600包括:第一接收模块601、获取模块602和第一发送模块603。
第一接收模块601用于接收客户端发送的待路由消息的消息主题;获取模块602用于若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息;第一发送模块603用于将所述部分订阅者信息,发送给所述客户端。
一些实施例中,所述装置600还包括:第二接收模块,用于接收所述客户端发送的指定数量,所述指定数量用以指示所述部分订阅者信息的数量;所述获取模块602进一步用于:获取数量为所述指定数量的部分订阅者信息。
一些实施例中,所述获取模块602进一步用于:获取所述消息主题对应的全部主题指针;获取所述全部主题指针中的待处理主题指针;基于所述待处理主题指针,获取标识信息,所述标识信息包括:所述待处理主题指针,以及,订阅所述待路由消息的部分订阅者的订阅者标识;获取所述标识信息对应的所述部分订阅者的订阅者元信息;基于所述订阅者标识和所述订阅者元信息,获取所述部分订阅者信息。
一些实施例中,所述装置600还包括:第二发送模块,用于将所述全部主题指针中的至少部分主题指针发送给所述客户端;所述获取模块602进一步用于:接收所述客户端发送的所述待处理主题指针,所述待处理主题指针为所述客户端在所述至少部分主题指针中确定的。
一些实施例中,所述至少部分主题指针为部分主题指针,所述装置600还包括:第三发送模块,用于将其他主题指针对应的订阅者信息,发送给所述客户端,所述其他主题指针为所述全部主题指针中除了所述部分主题指针之外的主题指针。
一些实施例中,所述装置600还包括:第四发送模块,用于若所述消息主题对应的全部订阅者信息的数量小于或等于所述预设值,将所述全部订阅者信息发送给所述客户端。
本公开实施例中,若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息,可以实现同一消息主题的全部订阅者信息的分批次获取,从而扩展同一消息主题的订阅者数量。
图7是根据本公开第七实施例的示意图,本实施例提供一种信息获取装置,该装置700包括:第一发送模块701和第一接收模块702。
第一发送模块701用于向服务端发送待路由消息的消息主题,所述消息主题用以触发服务端响应于所述消息主题对应的全部订阅者信息的数量大于预设值,基于所述消息主题获取所述全部订阅者信息中的部分订阅者信息;第一接收模块702用于接收所述服务端发送的所述部分订阅者信息。
一些实施例中,所述装置700还包括:第二发送模块,用于向所述服务端发送指定数量,所述指定数量用以触发所述服务端获取数量为所述指定数量的所述部分订阅者信息。
一些实施例中,所述装置700还包括:第二接收模块,用于接收所述服务端发送的所述消息主题对应的全部主题指针中的至少部分主题指针;确定模块,用于在所述至少部分主题指针中确定待处理主题指针;第三发送模块,用于将所述待处理主题指针发送给所述服务端,所述待处理主题指针用以触发所述服务端基于所述待处理主题指针获取标识信息,基于所述标识信息获取订阅者元信息,以及基于所述标识信息和所述订阅者元信息获取所述部分订阅者信息,所述标识信息包括:所述待处理主题指针,以及,订阅所述待路由消息的部分订阅者的订阅者标识。
一些实施例中,所述至少部分主题指针为部分主题指针,所述装置700还包括:第三接收模块,用于接收所述服务端发送的其他主题指针对应的订阅者信息,所述其他主题指针为所述全部主题指针中除了所述部分主题指针之外的主题指针。
一些实施例中,所述装置700还包括:第四接收模块,用于接收所述服务端响应于所述消息主题对应的全部订阅者信息的数量小于或等于预设值,发送的所述全部订阅者信息。
本公开实施例中,通过接收服务端发送的部分订阅者信息,可以实现同一消息主题的全部订阅者信息的分批次获取,从而扩展同一消息主题的订阅者数量。
可以理解的是,本公开实施例中,不同实施例中的相同或相似内容可以相互参考。
可以理解的是,本公开实施例中的“第一”、“第二”等只是用于区分,不表示重要程度高低、时序先后等。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储电子设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如信息获取方法。例如,在一些实施例中,消息路由方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到电子设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的信息获取方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行信息获取方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (25)

1.一种信息获取方法,包括:
接收客户端发送的待路由消息的消息主题;
若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息;
将所述部分订阅者信息,发送给所述客户端。
2.根据权利要求1所述的方法,所述若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息之前,所述方法还包括:
接收所述客户端发送的指定数量,所述指定数量用以指示所述部分订阅者信息的数量;
相应的,所述若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息,包括:
若所述消息主题对应的全部订阅者信息的数量大于预设值,获取数量为所述指定数量的部分订阅者信息。
3.根据权利要求1所述的方法,其中,所述获取所述全部订阅者信息中的部分订阅者信息,包括:
获取所述消息主题对应的全部主题指针;
获取所述全部主题指针中的待处理主题指针;
基于所述待处理主题指针,获取标识信息,所述标识信息包括:所述待处理主题指针,以及,订阅所述待路由消息的部分订阅者的订阅者标识;
获取所述标识信息对应的所述部分订阅者的订阅者元信息;
基于所述订阅者标识和所述订阅者元信息,获取所述部分订阅者信息。
4.根据权利要求3所述的方法,所述获取所述消息主题对应的全部主题指针之后,且所述获取所述全部主题指针中的待处理主题指针之前,所述方法还包括:
将所述全部主题指针中的至少部分主题指针发送给所述客户端;
相应的,所述获取所述全部主题指针中的待处理主题指针,包括:
接收所述客户端发送的所述待处理主题指针,所述待处理主题指针为所述客户端在所述至少部分主题指针中确定的。
5.根据权利要求4所述的方法,其中,所述至少部分主题指针为部分主题指针,所述获取所述消息主题对应的全部主题指针之后,所述方法还包括:
将其他主题指针对应的订阅者信息,发送给所述客户端,所述其他主题指针为所述全部主题指针中除了所述部分主题指针之外的主题指针。
6.根据权利要求1-5任一项所述的方法,所述接收客户端发送的待路由消息的消息主题之后,所述方法还包括:
若所述消息主题对应的全部订阅者信息的数量小于或等于所述预设值,将所述全部订阅者信息发送给所述客户端。
7.一种信息获取方法,包括:
向服务端发送待路由消息的消息主题,所述消息主题用以触发服务端响应于所述消息主题对应的全部订阅者信息的数量大于预设值,基于所述消息主题获取所述全部订阅者信息中的部分订阅者信息;
接收所述服务端发送的所述部分订阅者信息。
8.根据权利要求7所述的方法,所述接收所述服务端发送的所述部分订阅者信息之前,所述方法还包括:
向所述服务端发送指定数量,所述指定数量用以触发所述服务端获取数量为所述指定数量的所述部分订阅者信息。
9.根据权利要求7所述的方法,所述向服务端发送待路由消息的消息主题之后,且所述接收所述服务端发送的所述部分订阅者信息之前,所述方法还包括:
接收所述服务端发送的所述消息主题对应的全部主题指针中的至少部分主题指针;
在所述至少部分主题指针中确定待处理主题指针;
将所述待处理主题指针发送给所述服务端,所述待处理主题指针用以触发所述服务端基于所述待处理主题指针获取标识信息,基于所述标识信息获取订阅者元信息,以及基于所述标识信息和所述订阅者元信息获取所述部分订阅者信息,所述标识信息包括:所述待处理主题指针,以及,订阅所述待路由消息的部分订阅者的订阅者标识。
10.根据权利要求9所述的方法,其中,所述至少部分主题指针为部分主题指针,所述向服务端发送待路由消息的消息主题之后,所述方法还包括:
接收所述服务端发送的其他主题指针对应的订阅者信息,所述其他主题指针为所述全部主题指针中除了所述部分主题指针之外的主题指针。
11.根据权利要求7-10任一项所述的方法,所述向服务端发送待路由消息的消息主题之后,所述方法还包括:
接收所述服务端响应于所述消息主题对应的全部订阅者信息的数量小于或等于预设值,发送的所述全部订阅者信息。
12.一种信息获取装置,包括:
第一接收模块,用于接收客户端发送的待路由消息的消息主题;
获取模块,用于若所述消息主题对应的全部订阅者信息的数量大于预设值,获取所述全部订阅者信息中的部分订阅者信息;
第一发送模块,用于将所述部分订阅者信息,发送给所述客户端。
13.根据权利要求12所述的装置,还包括:
第二接收模块,用于接收所述客户端发送的指定数量,所述指定数量用以指示所述部分订阅者信息的数量;
所述获取模块进一步用于:
获取数量为所述指定数量的部分订阅者信息。
14.根据权利要求12所述的装置,其中,所述获取模块进一步用于:
获取所述消息主题对应的全部主题指针;
获取所述全部主题指针中的待处理主题指针;
基于所述待处理主题指针,获取标识信息,所述标识信息包括:所述待处理主题指针,以及,订阅所述待路由消息的部分订阅者的订阅者标识;
获取所述标识信息对应的所述部分订阅者的订阅者元信息;
基于所述订阅者标识和所述订阅者元信息,获取所述部分订阅者信息。
15.根据权利要求14所述的装置,还包括:
第二发送模块,用于将所述全部主题指针中的至少部分主题指针发送给所述客户端;
所述获取模块进一步用于:
接收所述客户端发送的所述待处理主题指针,所述待处理主题指针为所述客户端在所述至少部分主题指针中确定的。
16.根据权利要求15所述的装置,其中,所述至少部分主题指针为部分主题指针,所述装置还包括:
第三发送模块,用于将其他主题指针对应的订阅者信息,发送给所述客户端,所述其他主题指针为所述全部主题指针中除了所述部分主题指针之外的主题指针。
17.根据权利要求12-16任一项所述的装置,还包括:
第四发送模块,用于若所述消息主题对应的全部订阅者信息的数量小于或等于所述预设值,将所述全部订阅者信息发送给所述客户端。
18.一种信息获取装置,包括:
第一发送模块,用于向服务端发送待路由消息的消息主题,所述消息主题用以触发服务端响应于所述消息主题对应的全部订阅者信息的数量大于预设值,基于所述消息主题获取所述全部订阅者信息中的部分订阅者信息;
第一接收模块,用于接收所述服务端发送的所述部分订阅者信息。
19.根据权利要求18所述的装置,还包括:
第二发送模块,用于向所述服务端发送指定数量,所述指定数量用以触发所述服务端获取数量为所述指定数量的所述部分订阅者信息。
20.根据权利要求18所述的装置,还包括:
第二接收模块,用于接收所述服务端发送的所述消息主题对应的全部主题指针中的至少部分主题指针;
确定模块,用于在所述至少部分主题指针中确定待处理主题指针;
第三发送模块,用于将所述待处理主题指针发送给所述服务端,所述待处理主题指针用以触发所述服务端基于所述待处理主题指针获取标识信息,基于所述标识信息获取订阅者元信息,以及基于所述标识信息和所述订阅者元信息获取所述部分订阅者信息,所述标识信息包括:所述待处理主题指针,以及,订阅所述待路由消息的部分订阅者的订阅者标识。
21.根据权利要求20所述的装置,其中,所述至少部分主题指针为部分主题指针,所述装置还包括:
第三接收模块,用于接收所述服务端发送的其他主题指针对应的订阅者信息,所述其他主题指针为所述全部主题指针中除了所述部分主题指针之外的主题指针。
22.根据权利要求18-21任一项所述的装置,还包括:
第四接收模块,用于接收所述服务端响应于所述消息主题对应的全部订阅者信息的数量小于或等于预设值,发送的所述全部订阅者信息。
23.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的方法。
24.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-11中任一项所述的方法。
25.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-11中任一项所述的方法。
CN202111466852.6A 2021-12-03 2021-12-03 信息获取方法、装置、设备和存储介质 Active CN114449031B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111466852.6A CN114449031B (zh) 2021-12-03 2021-12-03 信息获取方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111466852.6A CN114449031B (zh) 2021-12-03 2021-12-03 信息获取方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN114449031A true CN114449031A (zh) 2022-05-06
CN114449031B CN114449031B (zh) 2023-11-21

Family

ID=81364228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111466852.6A Active CN114449031B (zh) 2021-12-03 2021-12-03 信息获取方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN114449031B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050117538A1 (en) * 2003-11-28 2005-06-02 Alcatel System for transmitting multicast information
CN101295311A (zh) * 2008-06-17 2008-10-29 浙江大学 一种大规模发布订阅***的语义匹配算法
CN103534988A (zh) * 2013-06-03 2014-01-22 华为技术有限公司 消息发布与订阅的方法及装置
CN103699616A (zh) * 2013-12-17 2014-04-02 新浪网技术(中国)有限公司 数据结构创建方法、订阅消息数据发送方法及相关装置
US20160205536A1 (en) * 2015-01-14 2016-07-14 Qualcomm Incorporated Throughput and multi-sim call performance through efficient reuse of cached overhead information
WO2019157883A1 (zh) * 2018-02-13 2019-08-22 论客科技(广州)有限公司 一种针对成员等级的消息推送方法、装置、服务器及***
US20200120169A1 (en) * 2018-10-15 2020-04-16 Citrix Systems, Inc. Scalable message passing architecture a cloud environment
CN112751892A (zh) * 2019-10-30 2021-05-04 腾讯科技(深圳)有限公司 一种信息分发方法、装置、设备及存储介质
CN113138995A (zh) * 2021-05-13 2021-07-20 中国工商银行股份有限公司 微服务集群中更新通知方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050117538A1 (en) * 2003-11-28 2005-06-02 Alcatel System for transmitting multicast information
CN101295311A (zh) * 2008-06-17 2008-10-29 浙江大学 一种大规模发布订阅***的语义匹配算法
CN103534988A (zh) * 2013-06-03 2014-01-22 华为技术有限公司 消息发布与订阅的方法及装置
CN103699616A (zh) * 2013-12-17 2014-04-02 新浪网技术(中国)有限公司 数据结构创建方法、订阅消息数据发送方法及相关装置
US20160205536A1 (en) * 2015-01-14 2016-07-14 Qualcomm Incorporated Throughput and multi-sim call performance through efficient reuse of cached overhead information
WO2019157883A1 (zh) * 2018-02-13 2019-08-22 论客科技(广州)有限公司 一种针对成员等级的消息推送方法、装置、服务器及***
US20200120169A1 (en) * 2018-10-15 2020-04-16 Citrix Systems, Inc. Scalable message passing architecture a cloud environment
CN112751892A (zh) * 2019-10-30 2021-05-04 腾讯科技(深圳)有限公司 一种信息分发方法、装置、设备及存储介质
CN113138995A (zh) * 2021-05-13 2021-07-20 中国工商银行股份有限公司 微服务集群中更新通知方法及装置

Also Published As

Publication number Publication date
CN114449031B (zh) 2023-11-21

Similar Documents

Publication Publication Date Title
CN108984553B (zh) 缓存方法和装置
CN111159211A (zh) 订单信息生成方法、装置、***、计算机设备及存储介质
CN109753424B (zh) Ab测试的方法和装置
CN108764866B (zh) 用于分配资源、领取资源的方法和设备
US20230269304A1 (en) Method and apparatus for processing notification trigger message
CN108959294B (zh) 一种访问搜索引擎的方法和装置
CN112860762A (zh) 用于检测时间段重叠的方法和装置
CN113761565A (zh) 数据脱敏方法和装置
CN113590447B (zh) 埋点处理方法和装置
CN112887426B (zh) 信息流的推送方法、装置、电子设备以及存储介质
CN115454971A (zh) 数据迁移方法、装置、电子设备及存储介质
CN113656731A (zh) 广告页面的处理方法、装置、电子设备和存储介质
CN114449031A (zh) 信息获取方法、装置、设备和存储介质
CN113726885A (zh) 一种流量配额的调整方法和装置
CN114546343A (zh) 活动页面的生成方法和装置
CN115373831A (zh) 数据处理方法、装置以及计算机可读存储介质
CN113449230A (zh) 一种确定曝光元素的方法和***以及客户端和服务端
CN111767447A (zh) 用于确定用户流量路径的方法和装置
CN115840604B (zh) 数据处理方法、装置、电子设备和计算机可读存储介质
CN113037608B (zh) 消息回复方法、装置、电子设备及可读存储介质
CN114860557B (zh) 用户行为信息生成方法、装置、设备及可读存储介质
CN115203599B (zh) 信息推荐方法、装置、设备和存储介质
CN113766437B (zh) 一种短信发送方法和装置
CN110019671B (zh) 一种处理实时消息的方法和***
CN112905427A (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