CN108132845A - 消息存储、投递方法和装置以及电子设备 - Google Patents

消息存储、投递方法和装置以及电子设备 Download PDF

Info

Publication number
CN108132845A
CN108132845A CN201611090988.0A CN201611090988A CN108132845A CN 108132845 A CN108132845 A CN 108132845A CN 201611090988 A CN201611090988 A CN 201611090988A CN 108132845 A CN108132845 A CN 108132845A
Authority
CN
China
Prior art keywords
message
index information
file
information
queue
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.)
Pending
Application number
CN201611090988.0A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201611090988.0A priority Critical patent/CN108132845A/zh
Publication of CN108132845A publication Critical patent/CN108132845A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例提供了一种消息存储、投递方法和装置以及电子设备,其中消息存储方法包括接收新生成的消息;将所述消息写入消息数据文件中;生成所述消息的索引信息,并将所述索引信息写入队列文件中,所述索引信息包括所述消息在所述消息数据文件中的位置信息。本申请提供的消息存储、投递方法、装置及设备,通过将消息的实体数据写入到消息数据文件中,将消息的索引信息写入到队列文件中,从而有效地降低了队列文件的数据量,进而减少了***资源的占用和消耗,提高了消息处理速度,并且将索引信息写入队列文件,能够更加便于查找待投递的消息,从而进一步提高消息的处理速度。

Description

消息存储、投递方法和装置以及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种消息存储、投递方法和装置以及电子设备。
背景技术
现今的网络服务平台(例如购物、支付等平台),每天会出现千亿级数量的消息数据。通过对消息数据的分析发现,在大部分场景下(例如消费场景中),呈现出单消息生产者,多消息消费者的特点。
现有技术中的消息存储机制,一般是采用队列的方式对消息数据进行存储。例如,在传统基于日志数据的消息引擎中,如Kafka(Kafka是一种高吞吐量的分布式发布订阅消息***),每个队列等价于一个文件,在队列文件中,如图1所示,消息按照从旧到新的先后顺序(消息产生或者到达平台的顺序)存储在队列文件中,在进行消息投递时,也是按照队列的先后顺序进行消息投递。在现有技术中,每个队列中存储全量的消息数据,即消息的全量数据(即全部内容数据)均存储在队列文件中,导致队列文件数量及其庞大,如图2所示,其为一个示例性的完整消息的全部内容。假设某个主题有4个队列,每个队列能够存储50W消息,每个消息2K大小。那么针对这一个主题,服务器需要存储4*50W*2K的队列文件,大概1T的数据量。队列文件能够对消息进行较好的排序,非常有利于订阅模式下的消息存储及投递的管理,但是,同时,由于队列结构的复杂性,其也会严重占用和消耗***资源,当面临海量消息数据时,会导致严重延迟。
发明内容
本申请提供了一种消息存储、投递方法和装置以及电子设备,以减少***资源的消耗,降低消息处理的延迟。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种消息存储方法,包括:
接收新生成的消息;
将所述消息写入消息数据文件中;
生成所述消息的索引信息,并将所述索引信息写入队列文件中,所述索引信息包括所述消息在所述消息数据文件中的位置信息。
第二方面,提供了一种消息投递方法,其特征在于,消息的存储在数据文件中,所述消息的索引信息存储在队列文件中,所述索引信息包括所述消息在所述数据文件中的位置信息,所述方法包括:
从所述队列文件中读取所述消息的索引信息;
根据所述消息的索引信息,从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息。
第三方面,提供了消息存储装置,包括:
消息接收模块,用于接收新生成的消息;
消息写入模块,用于将所述消息写入消息数据文件中;
索引信息生成模块,用于生成所述消息的索引信息,并将所述索引信息写入队列文件中,所述索引信息包括所述消息在所述数据文件中的位置信息。
第四方面,提供了消息投递装置,消息的存储在数据文件中,所述消息的索引信息按照消息生成的先后顺序存储在队列文件中,所述索引信息包括所述消息在所述数据文件中的位置信息,所述装置包括:
索引信息获取模块,用于从所述队列文件中读取所述消息的索引信息;
消息投递模块,用于根据所述消息的索引信息,从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息。
第五方面,提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
接收新生成的消息;
将所述消息写入消息数据文件中;
生成所述消息的索引信息,并将所述索引信息写入队列文件中,所述索引信息包括所述消息在所述消息数据文件中的位置信息。
第六方面,提供了一种电子设备,其中,消息的存储在数据文件中,所述消息的索引信息存储在队列文件中,所述索引信息包括所述消息在所述数据文件中的位置信息,所述设备包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
从所述队列文件中读取所述消息的索引信息;
根据所述消息的索引信息,从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息。
本申请提供的消息存储、投递方法和装置以及电子设备,通过将数据量较大的消息的实体数据写入到消息数据文件中,仅将数据量较小的消息的索引信息写入到队列文件中,从而有效地降低了队列文件的数据量,进而减少了***资源的占用和消耗,提高了消息处理速度,并且将索引信息写入队列文件,能够更加便于查找待投递的消息,从而进一步提高消息的处理速度。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为现有技术的消息存储结构的示意图;
图2为现有技术的消息内容的结构示意图;
图3为本申请实施例的消息存储结构的示意图;
图4为本申请实施例的消息处理***的结构示意图;
图5为本申请实施例一的消息存储方法的流程示意图;
图6为本申请实施例一的消息横向扩展的示意图;
图7为本申请实施例二的消息投递方法的流程示意图;
图8为本申请实施例三的消息存储装置的结构示意图;
图9为本申请实施例四的消息投递装置的一结构示意图;
图10为本申请实施例四的消息投递装置的另一结构示意图;
图11为本申请实施例五的电子设备的结构示意图;
图12为本申请实施例六的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本申请改变了现有技术中通过队列文件存储消息的全量数据(消息的全部内容数据)的存储方式,其核心思想在于,将数据量较大的消息的全量数据存储到消息数据文件中,将数据量较少的消息的索引信息存储在队列文件中。数据文件可以采用非队列的数据进行存储,可以以全局顺序写入数据的方式将消息写入到一般性的数据文件中,所有的消息按序聚合在数据文件中,这样,能够充分利用操作***的磁盘IO调度算法,降低存储延迟。而队列文件仅存储消息的索引信息,属于轻量级的数据存储,并且队列文件能充分利用操作***的预读特性,降低消息的拉取延迟。此外,从消息堆积策略角度来看,将消息的索引信息堆积在队列文件中,堆积成本较小,而消息本身则聚集在数据文件中,在磁盘资源不足时,数据清除带来IO代价也会比较小。
具体地,如图3所示,消息产生端所产生的消息先被写入消息数据文件中,然后根据消息在数据文件中的存储位置以及其他内容信息等,生成索引信息,然后将该索引信息写入到队列文件中,写入的方式可以按照消息产生的先后顺序写入队列文件,即和现有的将消息写入队列文件中的模式一样。索引信息的最基本作用是能够定位消息在消息数据文件中的位置,从而能够获取到该消息的实体信息,因此,索引信息至少要包括消息在消息数据文件中的位置信息,例如偏移量(offset)。
在将消息按照图3所示的模式存储后,在需要向消息订阅端投递消息时,首先访问队列文件,获取待投递消息的索引信息,然后根据索引信息去消息数据文件中获取消息的实体数据进行消息投递。队列文件的作用在于能够按照从旧到新的顺序来记录产生的消息的索引信息,在针对某一个消息订阅端进行消息投递时,***会记录投递到了哪个队列文件的哪个位置,从而选择该位置之后的索引信息所对应的消息进行投递。
此外,消息数据文件和队列文件可以按照消息的主题进行划分,一个主题可以对应一个或多个消息数据文件,同时可以对应一个或多个队列文件。另外,由于可以通过队列文件中的索引信息找到具体的消息,因此,可以将多个主题的消息都存储在一个消息数据文件,并且可以以常规的方式写入消息数据文件,不需要按照主题进行区分,也不需要按照顺序写入等。从数据存储的角度来看,将消息的实体数据的存储可以不分队列混在一起,相对于将数据按照队列来区分存储,有效降低了数据文件或者说整体的文件数量。
如图4所示,本申请的技术方案可以应用于例如图4所示的网络服务平台中,该网络服务平台可以为购物平台、支付平台或者新闻订阅平台等。其中,在该网络服务平台中,可以设置有用于执行本申请的消息存储方法和消息投递方法的消息存储装置和消息投递装置。此外,在实际应用中,上述的队列文件和消息数据文件可以存储在用于存储消息相关数据的文件***(该文件***可以存在于用于永久化存储数据的本地磁盘或者外部数据存储服务器)中,同时在网络服务平台的内存中,可以有相对应的映射文件,该映射文件存储在内存中的相应的缓存区域中(如图中的队列映射缓存和消息数据文件映射缓存)。网络服务平台接收到新的消息后,先写入内存的相应缓存区域,然后再通过异步的方式持久化到文件***中。当进行消息投递时,也会先从内存中的相应缓存区域中进行查找,如果命中则直接提取消息并进行投递,在内存中进行消息查找的过程也是先访问队列文件对应的映射缓存中的索引信息,然后再去消息数据文件对应的映射缓存中获取消息并进行投递。由于大部分投递的消息都是最新生成的消息,因此,整个消息查找和投递过程更多地会在内存中进行,只有当缓存(cache)无法命中时,才会从文件***中读取数据,因此,针对消息的整体处理速度会比较快。
下面通过多个实施例来进一步说明本申请的技术方案。
实施例一
如图5所示,其为本申请实施例一的消息存储方法的流程示意图,该方法包括:
101、接收新生成的消息。该步骤可以由图4所示的网络服务平台中的消息存储装置来执行,其中,新生成的消息可以来自于网络服务平台外部的消息产生端,例如,购物平台中,卖家进行信息发布的客户端等。
102、将消息写入消息数据文件中。该步骤可以由图3所示的网络服务平台中的消息存储装置来执行,其中,消息数据文件可以仅存在于内存中,也可以仅存在于网络服务平台以外的文件***中。在实际应用中,可以同时存在于文件***和网络服务平台的内存中,其中,内存中的消息数据文件为映射缓存文件,存储于内存中的映射缓存区域,将消息写入消息数据文件中可以具体为先将消息写入到内存中的映射缓存中,然后再异步地持久化到文件***中。
103、生成消息的索引信息,并将索引信息写入队列文件中,索引信息包括消息在消息数据文件中的位置信息,这里所说的位置信息可以具体为消息在数据文件中的偏移量。其中,根据实际需要,索引信息可以包括例如消息的大小信息、消息的类别标签信息、消息的键值、消息的状态信息、消息的定时投递信息等信息中的一种或者多种。
步骤103可以由图3所示的网络服务平台中的消息存储装置来执行,其中,队列文件可以仅存在于内存中,也可以仅存在于网络服务平台以外的文件***中。在实际应用中,可以同时存在于文件***和网络服务平台的内存中,其中,内存中的队列文件为映射缓存文件,存储于内存中的映射缓存区域,将将索引信息写入队列文件中可以具体为先将索引信息写入到内存中的映射缓存中,然后再异步地持久化到文件***中。
进一步地,数据文件和队列文件可以按照消息的主题进行划分,不同主题分别对应一个或多个数据文件和队列文件,基于这样的架构,将消息写入消息数据文件可以具体为:根据消息的主题,将消息写入与该消息的主题对应的消息数据文件中。相应地,将索引信息写入队列文件中可以具体为:将索引信息写入与该消息的主题对应的队列文件中。
较为优选地,存在多个主题的消息,队列文件按照消息的主题进行划分,不同主题分别对应一个或多个队列文件,多个主题的消息都存储在同一个消息数据文件中,即只有队列文件和主题对应,存储实体消息数据的消息数据文件可以只有一个。相应地,在步骤102中,将不同主题的消息写入到一个消息数据文件中,而在步骤103中,将各个消息在同一个消息数据文件中的索引信息写入到与该消息的主题对应的队列文件中。
此外,本申请实施例中的队列文件可以根据需要进行横向扩展,这里所说的横向扩展是指通过扩展消息的索引信息对消息进行多维度的管理。如图6所示,可以根据消息订阅服务的需要,构件不同用途的队列。例如:队列1就是用于一般的消息队列服务,根据消息的产生的先后顺序按照队列进行投递,针对这样的服务,队列文件中的消息索引信息只需要包含消息在消息数据文件中的偏移量即可,可选地,如图3所示,消息索引信息中可以包括消息的类别标签信息,从而可以对消息进行一定程度的筛选;队列2具有消息的内容索引功能,其除了存储有偏移量之外,还有存储有消息内容的键值(KEY),可以根据键值进行;队列3用于事务消息状态服务,其除了存储有偏移量之外,还有存储有事务消息的状态,其中,事务消息可以理解为在某个事务完成后再进行投递的消息,将这样的消息对应的索引信息都分发到一个特定的队列中,针对该队列对应的消息,都是通过事务完成再触发投递;队列4具有消息定时投递的功能,其除了存储有偏移量之外,还有存储有定时投递信息,例如投递时间或者投递条件等。上述的不同的队列可以针对同一消息数据文件,也可以是针对不同的消息数据文件,总之,通过灵活地设置队列文件中的索引信息内容,可以实现多种不同的消息投递管理的横向功能扩展。
本实施例提供的消息存储方法,通过将消息的实体数据写入到消息数据文件中,将消息的索引信息写入到队列文件中,从而有效地降低了队列文件的数据量,进而减少了***资源的占用和消耗,提高了消息处理速度。
实施例二
如图7所示,为本申请实施例二的消息投递方法的流程示意图。实施例一的存储方法中,将消息的存储在数据文件中,并且将消息的索引信息存储在队列文件中,其中,索引信息至少包括消息在数据文件中的位置信息,位置信息可以为消息在数据文件中的偏移量。在此基础上,本实施例的投递方法包括:
201、从队列文件中读取消息的索引信息。该步骤可以由图4所示的网络服务平台中的消息投递装置来执行,在实际应用中,消息投递装置会首先访问内存中的映射缓存区域,如果命中则直接从缓存中读取索引信息,如果没有命中,则再进一步访问文件***来获取索引信息。
202、根据消息的索引信息,从消息数据文件中获取与该索引信息对应的消息,并投递该消息。该步骤可以由图4所示的网络服务平台中的消息投递装置来执行,同样地,消息投递装置会首先根据索引信息,访问内存中的映射缓存区域,如果命中则直接从缓存中读取消息,如果没有命中,则再进一步访问文件***来获取消息。
进一步地,数据文件和队列文件可以按照消息的主题进行划分,不同主题分别对应一个或多个数据文件和队列文件,则从队列文件中,读取消息的索引信息可以包括:根据用户订阅的主题,选择与该主题对应的队列文件,从该队列文件中获取待推送给用户的消息的索引信息;相应地,根据消息的索引信息,从消息数据文件中获取与该索引信息对应的消息可以包括:根据用户订阅的主题,选择与该主题对应的消息数据文件,根据消息的索引信息,从消息数据文件中获取与该索引信息对应的消息。
较为优选地,存在多个主题的消息,仅队列文件按照消息的主题进行划分,不同主题分别对应一个或多个队列文件,而多个主题的消息存储在同一个消息数据文件中,这样,从队列文件中读取所述消息的索引信息可以包括:根据用户订阅的主题,选择与该主题对应的队列文件,从该队列文件中获取待推送给所述用户的消息的索引信息。然后,再根据索引信息在同一个消息数据文件中,查找待推送的消息。
如实施例一中所说,队列文件可以根据需要进行横向扩展。具体地,索引信息除了包括述消息在数据文件中的位置信息之外,还可以包括消息的类别标签信息和/或消息的状态信息,在此基础上,
在步骤202中,在读取消息的索引信息后,还可以包括:根据索引信息中的消息的类别标签信息和/或消息的状态信息对消息进行筛选;然后,根据筛选结果,确定是否从消息数据文件中获取与该索引信息对应的消息,并投递该消息。
作为另外一种扩展应用,除了包括述消息在数据文件中的位置信息之外,还可以包括消息的定时投递信息,在此基础上,在步骤202中,从消息数据文件中获取与该索引信息对应的消息,并投递该消息可以包括:根据定时投递信息中的投递时间,从消息数据文件中获取与该索引信息对应的消息,并投递该消息。
本申请提供的消息投递方法,先从队列文件中获取索引信息,然后再根据索引信息去消息数据文件中获取消息并投递,由于队列文件中存储的索引信息相比现有技术中存储的消息实体数据而言,属于轻量级数据,在查找的过程中速度较快,另外,队列文件和消息数据文件在内存中均有对应的映射缓存,整个消息查找和投递过程更多地会在内存中进行,只有当缓存无法命中,才会从文件***中读取数据,因此,针对消息的整体处理速度会比较快。
实施例三
如图8所示,其为本申请实施例三的消息存储装置的结构示意图,其包括:
消息接收模块11,用于接收新生成的消息;
消息写入模块12,用于将消息写入消息数据文件中;
索引信息生成模块13,用于生成消息的索引信息,并将索引信息写入队列文件中,索引信息包括消息在数据文件中的位置信息,具体地,位置信息可以为消息在数据文件中的偏移量。
其中,数据文件和队列文件可以按照消息的主题进行划分,不同主题分别对应一个或多个数据文件和队列文件。相应地,在消息写入模块12中,将消息写入消息数据文件可以包括:根据消息的主题,将消息写入与该消息的主题对应的消息数据文件中;在索引信息生成模块13中,将索引信息写入队列文件中可以包括:将索引信息写入与该消息的主题对应的队列文件中。
较为优选地,存在多个主题的消息,队列文件按照消息的主题进行划分,不同主题分别对应一个或多个队列文件,多个主题的消息都存储在同一个消息数据文件中,即只有队列文件和主题对应,存储实体消息数据的消息数据文件可以只有一个。相应地,在消息写入模块12中,将不同主题的消息写入到一个消息数据文件中,而在索引信息生成模块13中,将各个消息在同一个消息数据文件中的索引信息写入到与该消息的主题对应的队列文件中。
本实施例提供的消息存储装置,通过将消息的实体数据写入到消息数据文件中,将消息的索引信息写入到队列文件中,从而有效地降低了队列文件的数据量,进而减少了***资源的占用和消耗,提高了消息处理速度。
实施例四
如图9所示,本申请实施例四的消息投递装置的一结构示意图,其中,消息的存储在数据文件中,消息的索引信息存储在队列文件中,索引信息包括消息在数据文件中的位置信息,其中,位置信息可以为消息在数据文件中的偏移量。在此基础上,本实施例的装置包括:
索引信息获取模块21,用于从队列文件中读取消息的索引信息;
消息投递模块22,用于根据消息的索引信息,从消息数据文件中获取与该索引信息对应的消息,并投递该消息。
进一步地,数据文件和队列文件可以按照消息的主题进行划分,不同主题分别对应一个或多个数据文件和队列文件。相应地,在索引信息获取模块21中,从队列文件中读取消息的索引信息可以包括:根据用户订阅的主题,选择与该主题对应的队列文件,从该队列文件中获取待推送给用户的消息的索引信息;在消息投递模块22中,根据消息的索引信息,从消息数据文件中获取与该索引信息对应的消息可以包括:根据用户订阅的主题,选择与该主题对应的消息数据文件,根据消息的索引信息,从消息数据文件中获取与该索引信息对应的消息。
较为优选地,存在多个主题的消息,仅队列文件按照消息的主题进行划分,不同主题分别对应一个或多个队列文件,而多个主题的消息存储在同一个消息数据文件中,这样,在获取模块21,从队列文件中读取所述消息的索引信息可以包括:根据用户订阅的主题,选择与该主题对应的队列文件,从该队列文件中获取待推送给所述用户的消息的索引信息。然后,消息投递模块22再根据索引信息在同一个消息数据文件中,查找待推送的消息。
对应于上述实施例中的队列文件的一种横向扩展应用,索引信息还可以包括消息的类别标签信息和/或消息的状态信息,相应地,如图10所示,该装置还可以包括:
筛选模块23,用于根据索引信息中的消息的类别标签信息和/或消息的状态信息对消息进行筛选;消息投递模块22可以具体用于:根据筛选结果,确定是否从消息数据文件中获取与该索引信息对应的消息,并投递该消息。
对应于上述实施例中的队列文件的另一种横向扩展应用,索引信息还可以包括消息的定时投递信息,相应地,在消息投递模块22中,从消息数据文件中获取与该索引信息对应的消息,并投递该消息可以包括:根据定时投递信息中的投递时间,从消息数据文件中获取与该索引信息对应的消息,并投递该消息。
本申请提供的消息投递装置,先从队列文件中获取索引信息,然后再根据索引信息去消息数据文件中获取消息并投递,由于队列文件中存储的索引信息相比现有技术中存储的消息实体数据而言,属于轻量级数据,在查找的过程中速度较快,另外,队列文件和消息数据文件在内存中均有对应的映射缓存,整个消息查找和投递过程更多地会在内存中进行,只有当缓存无法命中,才会从文件***中读取数据,因此,针对消息的整体处理速度会比较快。
实施例五
前面描述了消息存储装置的内部功能和结构,该装置可实现为一种电子设备,如图11所示,其为本申请实施例五的电子设备的结构示意图,具体包括:存储器31和处理器32。
存储器31,用于存储程序。
除上述程序之外,存储器31还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器31可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器32,耦合至存储器31,用于执行存储器31中的程序,以用于:
接收新生成的消息;
将消息写入消息数据文件中;
生成消息的索引信息,并将索引信息写入队列文件中,索引信息包括消息在消息数据文件中的位置信息。
上述的具体处理操作已经在前面实施例中进行了详细说明,在此不再赘述。
进一步,如图11所示,电子设备还可以包括:通信组件33、电源组件34、音频组件35、显示器36等其它组件。图10中仅示意性给出部分组件,并不意味着电子设备只包括图10所示组件。
通信组件33被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件33经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,通信组件33还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件34,为电子设备的各种组件提供电力。电源组件34可以包括电源管理***,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件35被配置为输出和/或输入音频信号。例如,音频组件35包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器31或经由通信组件33发送。在一些实施例中,音频组件35还包括一个扬声器,用于输出音频信号。
显示器36包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
实施例六
前面描述了消息投递装置的内部功能和结构,其中,消息的存储在数据文件中,消息的索引信息存储在队列文件中,索引信息包括消息在数据文件中的位置信息。该装置可实现为一种电子设备,如图12所示,其为本申请实施例六的电子设备的结构示意图,具体包括:存储器41和处理器42。
存储器41,用于存储程序。
除上述程序之外,存储器41还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器41可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器42,耦合至存储器41,用于执行存储器41中的程序,以用于:
从队列文件中读取消息的索引信息;
根据消息的索引信息,从消息数据文件中获取与该索引信息对应的消息,并投递该消息。
上述的具体处理操作已经在前面实施例中进行了详细说明,在此不再赘述。
进一步,如图12所示,电子设备还可以包括:通信组件43、电源组件44、音频组件45、显示器46等其它组件。图11中仅示意性给出部分组件,并不意味着电子设备只包括图11所示组件。
通信组件43被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件63经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,通信组件43还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件44,为电子设备的各种组件提供电力。电源组件44可以包括电源管理***,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件45被配置为输出和/或输入音频信号。例如,音频组件45包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器41或经由通信组件43发送。在一些实施例中,音频组件45还包括一个扬声器,用于输出音频信号。
显示器46包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (19)

1.一种消息存储方法,其特征在于,包括:
接收新生成的消息;
将所述消息写入消息数据文件中;
生成所述消息的索引信息,并将所述索引信息写入队列文件中,所述索引信息包括所述消息在所述消息数据文件中的位置信息。
2.根据权利要求1所述的方法,其特征在于,存在多个主题的消息,所述队列文件按照消息的主题进行划分,不同主题分别对应一个或多个队列文件,所述多个主题的消息存储在同一个消息数据文件中,
所述将所述索引信息写入队列文件中包括:将所述索引信息写入与该消息的主题对应的队列文件中。
3.根据权利要求1所述的方法,其特征在于,所述位置信息为所述消息在所述数据文件中的偏移量。
4.根据权利要求1所述的方法,其特征在于,所述索引信息还包括如下信息中的任意一项或者任意多项的组合:
消息的大小信息、消息的类别标签信息、消息的键值、消息的状态信息、消息的定时投递信息。
5.一种消息投递方法,其特征在于,消息的存储在数据文件中,所述消息的索引信息存储在队列文件中,所述索引信息包括所述消息在所述数据文件中的位置信息,所述方法包括:
从所述队列文件中读取所述消息的索引信息;
根据所述消息的索引信息,从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息。
6.根据权利要求5所述的方法,其特征在于,存在多个主题的消息,所述队列文件按照消息的主题进行划分,不同主题分别对应一个或多个队列文件,所述多个主题的消息存储在同一个消息数据文件中,
所述从队列文件中,读取所述消息的索引信息包括:根据用户订阅的主题,选择与该主题对应的队列文件,从该队列文件中获取待推送给所述用户的消息的索引信息。
7.根据权利要求5所述的方法,其特征在于,所述位置信息为所述消息在所述数据文件中的偏移量。
8.根据权利要求5所述的方法,其特征在于,所述索引信息还包括所述消息的类别标签信息和/或所述消息的状态信息,
在读取所述消息的索引信息后,还包括:
根据所述索引信息中的所述消息的类别标签信息和/或所述消息的状态信息对所述消息进行筛选;
根据筛选结果,确定是否从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息。
9.根据权利要求5所述的方法,其特征在于,所述索引信息还包括所述消息的定时投递信息,
所述从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息包括:
根据所述定时投递信息中的投递时间,从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息。
10.一种消息存储装置,其特征在于,包括:
消息接收模块,用于接收新生成的消息;
消息写入模块,用于将所述消息写入消息数据文件中;
索引信息生成模块,用于生成所述消息的索引信息,并将所述索引信息写入队列文件中,所述索引信息包括所述消息在所述数据文件中的位置信息。
11.根据权利要求10所述的装置,其特征在于,存在多个主题的消息,所述队列文件按照消息的主题进行划分,不同主题分别对应一个或多个队列文件,所述多个主题的消息存储在同一个消息数据文件中,
在所述索引信息生成模块中,所述将所述索引信息写入队列文件中包括:将所述索引信息写入与该消息的主题对应的队列文件中。
12.根据权利要求10所述的装置,其特征在于,所述位置信息为所述消息在所述数据文件中的偏移量。
13.一种消息投递装置,其特征在于,消息的存储在数据文件中,所述消息的索引信息存储在队列文件中,所述索引信息包括所述消息在所述数据文件中的位置信息,所述装置包括:
索引信息获取模块,用于从所述队列文件中读取所述消息的索引信息;
消息投递模块,用于根据所述消息的索引信息,从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息。
14.根据权利要求13所述的装置,其特征在于,存在多个主题的消息,所述队列文件按照消息的主题进行划分,不同主题分别对应一个或多个队列文件,所述多个主题的消息存储在同一个消息数据文件中,
在所述索引信息获取模块中,所述从队列文件中读取所述消息的索引信息包括:根据用户订阅的主题,选择与该主题对应的队列文件,从该队列文件中获取待推送给所述用户的消息的索引信息。
15.根据权利要求13所述的装置,其特征在于,所述位置信息为所述消息在所述数据文件中的偏移量。
16.根据权利要求13所述的装置,其特征在于,所述索引信息还包括所述消息的类别标签信息和/或所述消息的状态信息,
所述装置还包括:
筛选模块,用于根据所述索引信息中的所述消息的类别标签信息和/或所述消息的状态信息对所述消息进行筛选;
所述消息投递模块具体用于:根据筛选结果,确定是否从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息。
17.根据权利要求13所述的装置,其特征在于,所述索引信息还包括所述消息的定时投递信息,
在所述消息投递模块中,所述从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息包括:
根据所述定时投递信息中的投递时间,从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息。
18.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
接收新生成的消息;
将所述消息写入消息数据文件中;
生成所述消息的索引信息,并将所述索引信息写入队列文件中,所述索引信息包括所述消息在所述消息数据文件中的位置信息。
19.一种电子设备,其特征在于,消息的存储在数据文件中,所述消息的索引信息存储在队列文件中,所述索引信息包括所述消息在所述数据文件中的位置信息,所述设备包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
从所述队列文件中读取所述消息的索引信息;
根据所述消息的索引信息,从所述消息数据文件中获取与该索引信息对应的所述消息,并投递该消息。
CN201611090988.0A 2016-12-01 2016-12-01 消息存储、投递方法和装置以及电子设备 Pending CN108132845A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611090988.0A CN108132845A (zh) 2016-12-01 2016-12-01 消息存储、投递方法和装置以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611090988.0A CN108132845A (zh) 2016-12-01 2016-12-01 消息存储、投递方法和装置以及电子设备

Publications (1)

Publication Number Publication Date
CN108132845A true CN108132845A (zh) 2018-06-08

Family

ID=62388198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611090988.0A Pending CN108132845A (zh) 2016-12-01 2016-12-01 消息存储、投递方法和装置以及电子设备

Country Status (1)

Country Link
CN (1) CN108132845A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450778A (zh) * 2018-12-28 2019-03-08 北京爱奇艺科技有限公司 一种消息延时投递方法、装置及设备
CN109491617A (zh) * 2018-11-16 2019-03-19 广州创想云科技有限公司 数据储存转发方法、电子设备、存储介质
CN109684108A (zh) * 2018-12-26 2019-04-26 江苏满运软件科技有限公司 消息队列的实现方法、***、存储介质及电子设备
CN109857410A (zh) * 2019-03-06 2019-06-07 广东三维家信息科技有限公司 消息队列的云水刀处理方法和***
CN110109873A (zh) * 2019-05-08 2019-08-09 重庆大学 一种用于消息队列的文件管理方法
CN110896533A (zh) * 2019-06-28 2020-03-20 腾讯科技(深圳)有限公司 车辆通信消息处理方法、装置
CN111400056A (zh) * 2019-12-31 2020-07-10 远景智能国际私人投资有限公司 基于消息队列的消息传输方法、装置及设备
CN111985944A (zh) * 2019-05-21 2020-11-24 北京沃东天骏信息技术有限公司 物料数据的处理方法、装置、设备及存储介质
CN112558873A (zh) * 2020-12-14 2021-03-26 上海创米科技有限公司 嵌入式音视频数据存储、检索、删除方法及装置、存储器
CN112702259A (zh) * 2020-12-23 2021-04-23 北京焦点新干线信息技术有限公司 延迟消息推送方法、装置及消息中间件
CN113568907A (zh) * 2021-07-14 2021-10-29 彩讯科技股份有限公司 一种站内信消息处理方法、装置、服务器及存储介质
CN114553962A (zh) * 2022-02-21 2022-05-27 重庆伏特猫科技有限公司 一种基于消息队列的移动设备数据处理方法及***
WO2023088225A1 (zh) * 2021-11-17 2023-05-25 中移(苏州)软件技术有限公司 消息处理方法、装置、设备、计算机存储介质及程序

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101686209A (zh) * 2008-09-24 2010-03-31 阿里巴巴集团控股有限公司 消息转发***中存储消息的方法和装置
CN101783740A (zh) * 2009-01-21 2010-07-21 大唐移动通信设备有限公司 消息文件管理方法及装置
US20130036427A1 (en) * 2011-08-03 2013-02-07 International Business Machines Corporation Message queuing with flexible consistency options
CN103379021A (zh) * 2012-04-24 2013-10-30 中兴通讯股份有限公司 实现分布式消息队列的方法及***
CN103796182A (zh) * 2014-02-28 2014-05-14 杭州东信北邮信息技术有限公司 一种消息发送***和方法
CN104102552A (zh) * 2013-04-15 2014-10-15 深圳中兴网信科技有限公司 一种消息处理方法及装置
CN104123296A (zh) * 2013-04-26 2014-10-29 阿里巴巴集团控股有限公司 一种生成消息索引以便向接收者呈现消息的方法及装置
US20140359029A1 (en) * 2013-05-31 2014-12-04 Linkedln Corporation Message index subdivided based on time intervals
CN104754036A (zh) * 2015-03-06 2015-07-01 合一信息技术(北京)有限公司 一种基于kafka的消息处理***及处理方法
CN104794119A (zh) * 2014-01-17 2015-07-22 阿里巴巴集团控股有限公司 用于中间件消息的存储与传输方法及***

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101686209A (zh) * 2008-09-24 2010-03-31 阿里巴巴集团控股有限公司 消息转发***中存储消息的方法和装置
CN101783740A (zh) * 2009-01-21 2010-07-21 大唐移动通信设备有限公司 消息文件管理方法及装置
US20130036427A1 (en) * 2011-08-03 2013-02-07 International Business Machines Corporation Message queuing with flexible consistency options
CN103379021A (zh) * 2012-04-24 2013-10-30 中兴通讯股份有限公司 实现分布式消息队列的方法及***
CN104102552A (zh) * 2013-04-15 2014-10-15 深圳中兴网信科技有限公司 一种消息处理方法及装置
CN104123296A (zh) * 2013-04-26 2014-10-29 阿里巴巴集团控股有限公司 一种生成消息索引以便向接收者呈现消息的方法及装置
US20140359029A1 (en) * 2013-05-31 2014-12-04 Linkedln Corporation Message index subdivided based on time intervals
CN104794119A (zh) * 2014-01-17 2015-07-22 阿里巴巴集团控股有限公司 用于中间件消息的存储与传输方法及***
CN103796182A (zh) * 2014-02-28 2014-05-14 杭州东信北邮信息技术有限公司 一种消息发送***和方法
CN104754036A (zh) * 2015-03-06 2015-07-01 合一信息技术(北京)有限公司 一种基于kafka的消息处理***及处理方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491617B (zh) * 2018-11-16 2022-10-04 广州创想云科技有限公司 数据储存转发方法、电子设备、存储介质
CN109491617A (zh) * 2018-11-16 2019-03-19 广州创想云科技有限公司 数据储存转发方法、电子设备、存储介质
CN109684108A (zh) * 2018-12-26 2019-04-26 江苏满运软件科技有限公司 消息队列的实现方法、***、存储介质及电子设备
CN109450778A (zh) * 2018-12-28 2019-03-08 北京爱奇艺科技有限公司 一种消息延时投递方法、装置及设备
CN109857410A (zh) * 2019-03-06 2019-06-07 广东三维家信息科技有限公司 消息队列的云水刀处理方法和***
CN110109873A (zh) * 2019-05-08 2019-08-09 重庆大学 一种用于消息队列的文件管理方法
CN110109873B (zh) * 2019-05-08 2023-04-07 重庆大学 一种用于消息队列的文件管理方法
CN111985944A (zh) * 2019-05-21 2020-11-24 北京沃东天骏信息技术有限公司 物料数据的处理方法、装置、设备及存储介质
CN110896533A (zh) * 2019-06-28 2020-03-20 腾讯科技(深圳)有限公司 车辆通信消息处理方法、装置
CN110896533B (zh) * 2019-06-28 2023-07-14 腾讯科技(深圳)有限公司 车辆通信消息处理方法、装置
CN111400056A (zh) * 2019-12-31 2020-07-10 远景智能国际私人投资有限公司 基于消息队列的消息传输方法、装置及设备
CN112558873A (zh) * 2020-12-14 2021-03-26 上海创米科技有限公司 嵌入式音视频数据存储、检索、删除方法及装置、存储器
US11250888B1 (en) 2020-12-14 2022-02-15 Shanghai Imilab Technology Co., Ltd. Flash memory and method for storing and retrieving embedded audio video data
CN112702259A (zh) * 2020-12-23 2021-04-23 北京焦点新干线信息技术有限公司 延迟消息推送方法、装置及消息中间件
CN113568907A (zh) * 2021-07-14 2021-10-29 彩讯科技股份有限公司 一种站内信消息处理方法、装置、服务器及存储介质
WO2023088225A1 (zh) * 2021-11-17 2023-05-25 中移(苏州)软件技术有限公司 消息处理方法、装置、设备、计算机存储介质及程序
CN114553962A (zh) * 2022-02-21 2022-05-27 重庆伏特猫科技有限公司 一种基于消息队列的移动设备数据处理方法及***

Similar Documents

Publication Publication Date Title
CN108132845A (zh) 消息存储、投递方法和装置以及电子设备
CN108415759A (zh) 消息的处理方法、装置和电子设备
US20190220239A1 (en) Interactive group content systems and methods
CN104360805B (zh) 应用程序图标管理方法及装置
CN101620507B (zh) 使用接近传感器的移动终端以及控制该移动终端的方法
CN104364819B (zh) 增强的电子通信草稿管理
US9495692B2 (en) Conversion and display of a user input
CN105758108B (zh) 用于智能冷藏设备的信息反馈方法和装置
US20120323944A1 (en) Management of network-based digital data repository
CN104350495B (zh) 在全景显示中管理对象以导航电子表格
CN109388620A (zh) 一种跨设备访问数据的方法及第一电子设备
CN107925749A (zh) 用于调整电子设备的分辨率的方法和设备
CN108664331A (zh) 分布式数据处理方法及装置、电子设备、存储介质
CN103179267A (zh) 在便携式终端中管理消息的附件的装置和方法
CN107733532A (zh) 信息交互方法、装置及设备
CN104240068A (zh) 提醒事件创建方法和装置
CN104247378B (zh) 提供基于规则的内容分析以管理web扩展的激活
CN108885738A (zh) 通过自关联消息的命令和任务完成
CN106571136A (zh) 一种语音输出装置和方法
CN107885741A (zh) 图片缓存管理方法及移动终端
CN110516418A (zh) 一种操作用户识别方法、装置及设备
CN108463799A (zh) 电子设备的柔性显示器及其操作方法
CN106572095B (zh) 帐号注册方法、装置及***
EP3008932A1 (en) System and method for action-based input text messaging communication
CN104361049A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180608

RJ01 Rejection of invention patent application after publication