消息推送控制方法、装置及电子设备制造方法及图纸

技术编号:22756811 阅读:20 留言:0更新日期:2019-12-07 04:43
本公开实施例中提供了一种消息推送控制方法、装置及电子设备,属于数据处理技术领域,该方法包括:将与消息推送相关的用户数据按照多单元分布方式进行存储,使多个不同的用户数据与多个不同的存储实例唯一关联;利用构建的虚拟集群对客户端发送的请求消息进行消息处理,使所述请求消息与目标实例相对应;利用预设的检索结构体,在所述目标实例中执行检索操作,以获得与所述请求消息相对应的检索数据。通过本公开的处理方案,能够降低消息的推送延迟。

Message push control method, device and electronic equipment

The embodiment of the disclosure provides a message push control method, device and electronic device, belonging to the technical field of data processing. The method includes: storing user data related to message push in a multi unit distribution mode, making multiple different user data uniquely associated with multiple different storage instances; using the virtual cluster to send requests to clients The message is processed so that the request message corresponds to the target instance; the retrieval operation is performed in the target instance by using the preset retrieval structure to obtain the retrieval data corresponding to the request message. Through the processing scheme of the present disclosure, the push delay of the message can be reduced.

【技术实现步骤摘要】
消息推送控制方法、装置及电子设备
本公开涉及数据处理
,尤其涉及一种消息推送控制方法、装置及电子设备。
技术介绍
移动互联网时代,手机app的通知推送是一个app最核心的功能点之一,在这些通知的背后,消息推送频率控制非常重要,推送过多会对用户造成打扰,推送太少会使用户第一时间获取自己感兴趣的内容。在股票app中消息推送的及时性尤为重要,因为市场行情的变化转瞬即逝。既要推送快速,又要合理控制,一个低延迟的消息频率控制系统必不可少。现有app消息频控主要设计方案分为两类:一类是基于分布式存储诸如Redis等的原子技术功能实现,另外一类是基于共享内存实现并通过物理机部署。前者由于Redis提供的接口所限,无法支持批量的原子操作,因此在QPS较高时就会引起较大的网络请求放大,例如一个消息如果推送10万人,那么就需要10万用户逐次请求Redis进行原子计数操作,产生10万次网络请求,从而引发限频请求的超时,进一步影响消息推送的时效性;后者通过共享内存实现,基于共享内存的实现导致服务只能部署在物理机,无法充分使用云计算能力,物理机运维和管理成本都比较高,会给后续服务维护增加难度。
技术实现思路
有鉴于此,本公开实施例提供一种消息推送控制方法、装置及电子设备,至少部分解决现有技术中存在的问题。第一方面,本公开实施例提供了一种消息推送控制方法,包括:将与消息推送相关的用户数据按照多单元分布方式进行存储,使多个不同的用户数据与多个不同的存储实例唯一关联;利用构建的虚拟集群对客户端发送的请求消息进行消息处理,使所述请求消息与目标实例相对应;利用预设的检索结构体,在所述目标实例中执行检索操作,以获得与所述请求消息相对应的检索数据。根据本公开实施例的一种具体实现方式,所述利用构建的虚拟集群对客户端发送的请求消息进行消息处理之前,所述方法还包括:对于已经部署的n个实例,定义n个虚拟集群c0-c(n-1),其中,实例个数n通过动态配置中心下发;其中,n是自然数;为每个虚拟集群部署一个唯一的实例,每个实例在环境变量中配置一个用以识别实例的标识值。根据本公开实施例的一种具体实现方式,所述利用构建的虚拟集群对客户端发送的请求消息进行消息处理,包括:获取客户端发送的请求消息对应的消息标识uid;根据k=uid%n确定需要访问的虚拟集群c(k),其中,uid%n表示利用n对uid执行取余运算。根据本公开实施例的一种具体实现方式,所述利用预设的检索结构体,在所述目标实例中执行检索操作之前,所述方法还包括:构建所述检索结构体,所述检索结构体包含记录所述消息标识uid的位置索引。根据本公开实施例的一种具体实现方式,所述利用预设的检索结构体,在所述目标实例中执行检索操作,包括:在所述检索结构体中记录消息标识uid的位置索引中,查找与所述请求消息所对应的目标位置索引;根据查找到的目标位置索引,在所述目标实例中进行相应的写操作。根据本公开实施例的一种具体实现方式,所述利用预设的检索结构体,在所述目标实例中执行检索操作,包括:首次对所述消息标识uid进行查询时,通过无锁查询方式查询所述消息标识uid是否存在;如果存在与所述消息标识uid对应的结果,则直接返回所述消息标识uid对应的结果;当用户获取到全局锁后,进一步判断释放锁的线程是否已经分配空间,如果已分配,则执行返回操作。根据本公开实施例的一种具体实现方式,所述利用预设的检索结构体,在所述目标实例中执行检索操作,包括:获取原子当前的变量值;比较原子的当前值与历史值的差值;当所述差值小于默认值时,返回表示被频控的失败指令;当所述差值大于默认值时,对所述原子的当前值和历史值执行比较和交换(CompareAndSwap)操作,当交换操作成功后,返回表示本条消息通过时间维度频控的成功指令。根据本公开实施例的一种具体实现方式,所述利用预设的检索结构体,在所述目标实例中执行检索操作,以获得与所述请求消息相对应的检索数据之后,所述方法还包括:对所述消息处理和所述检索操作中产生的数据执行持久化处理。根据本公开实施例的一种具体实现方式,所述对所述消息处理和所述检索操作中产生的数据执行持久化处理,包括:采用预设的数据描述语言协议对所述消息处理和所述检索操作中产生的数据执行打包操作;将打包后的数据在分布式文件系统进行存储。第二方面,本公开实施例提供了一种消息推送控制装置,包括:存储模块,用于将与消息推送相关的用户数据按照多单元分布方式进行存储,使多个不同的用户数据与多个不同的实例唯一关联;处理模块,用于利用构建的虚拟集群对客户端发送的请求消息进行消息处理,使所述请求消息与目标实例相对应;检索模块,用于利用预设的检索结构体,在所述目标实例中执行检索操作,以获得与所述请求消息相对应的检索数据。第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:至少一个处理器;以及,与该至少一个处理器通信连接的存储器;其中,该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述任第一方面或第一方面的任一实现方式中的消息推送控制方法。第四方面,本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述第一方面或第一方面的任一实现方式中的消息推送控制方法。第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,使该计算机执行前述第一方面或第一方面的任一实现方式中的消息推送控制方法。本公开实施例中的消息推送控制方案,包括将与消息推送相关的用户数据按照多单元分布方式进行存储,使多个不同的用户数据与多个不同的存储实例唯一关联;利用构建的虚拟集群对客户端发送的请求消息进行消息处理,使所述请求消息与目标实例相对应;利用预设的检索结构体,在所述目标实例中执行检索操作,以获得与所述请求消息相对应的检索数据。通过本公开的方案,能够提供低延迟的消息频控服务。附图说明为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本公开实施例提供的一种消息推送控制流程示意图;图2为本公开实施例提供的另一种消息推送控制流程示意图;图3为本公开实施例提供的另一种消息推送控制流程示意图;图4为本公开实施例提供的另一种消息推送控制流程示意图;图5为本公开实施例提供的一种消息推送控制装置结构示意图;本文档来自技高网...

【技术保护点】
1.一种消息推送控制方法,其特征在于,包括:/n将与消息推送相关的用户数据按照多单元分布方式进行存储,使多个不同的用户数据与多个不同的存储实例唯一关联;/n利用构建的虚拟集群对客户端发送的请求消息进行消息处理,使所述请求消息与目标实例相对应;/n利用预设的检索结构体,在所述目标实例中执行检索操作,以获得与所述请求消息相对应的检索数据。/n

【技术特征摘要】
1.一种消息推送控制方法,其特征在于,包括:
将与消息推送相关的用户数据按照多单元分布方式进行存储,使多个不同的用户数据与多个不同的存储实例唯一关联;
利用构建的虚拟集群对客户端发送的请求消息进行消息处理,使所述请求消息与目标实例相对应;
利用预设的检索结构体,在所述目标实例中执行检索操作,以获得与所述请求消息相对应的检索数据。


2.根据权利要求1所述的方法,其特征在于,所述利用构建的虚拟集群对客户端发送的请求消息进行消息处理之前,所述方法还包括:
对于已经部署的n个实例,定义n个虚拟集群c0-c(n-1),其中,实例个数n通过动态配置中心下发;其中,n是自然数;
为每个虚拟集群部署一个唯一的实例,每个实例在环境变量中配置一个用以识别实例的标识值。


3.根据权利要求2所述的方法,其特征在于,所述利用构建的虚拟集群对客户端发送的请求消息进行消息处理,包括:
获取客户端发送的请求消息对应的消息标识uid;
根据k=uid%n确定需要访问的虚拟集群c(k),其中,uid%n表示利用n对uid执行取余运算。


4.根据权利要求1所述的方法,其特征在于,所述利用预设的检索结构体,在所述目标实例中执行检索操作之前,所述方法还包括:
构建所述检索结构体,所述检索结构体包含记录所述消息标识uid的位置索引。


5.根据权利要求4所述的方法,其特征在于,所述利用预设的检索结构体,在所述目标实例中执行检索操作,包括:
在所述检索结构体中记录消息标识uid的位置索引中,查找与所述请求消息所对应的目标位置索引;
根据查找到的目标位置索引,在所述目标实例中进行相应的写操作。


6.根据权利要求4所述的方法,其特征在于,所述利用预设的检索结构体,在所述目标实例中执行检索操作,包括:
首次对所述消息标识uid进行查询时,通过无锁查询方式查询所述消息标识uid是否存在;
如果存在与所述消息标识uid对应的结果,则直接返回所述消息标识uid对应的结果;
当用户获取到全局锁后,进一步判断释放锁的线程是否已经分配...

【专利技术属性】
技术研发人员:宋增宽吴英强
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1