CN109743378B - 信息推送系统、信息推送方法及电子设备 - Google Patents
信息推送系统、信息推送方法及电子设备 Download PDFInfo
- Publication number
- CN109743378B CN109743378B CN201811613046.5A CN201811613046A CN109743378B CN 109743378 B CN109743378 B CN 109743378B CN 201811613046 A CN201811613046 A CN 201811613046A CN 109743378 B CN109743378 B CN 109743378B
- Authority
- CN
- China
- Prior art keywords
- terminal
- push
- server
- pushing
- preset
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000001914 filtration Methods 0.000 claims abstract description 127
- 238000004891 communication Methods 0.000 claims description 55
- 238000004590 computer program Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例提供了一种信息推送系统、信息推送方法及服务器,针对推送请求中的终端标识,通过检测频率过滤服务器中的预设数量个第一布隆过滤器是否都记录了所述终端标识,来判断所述终端标识的已推送次数是否超过预设的阈值,并实现对推送频率的控制。可见,本发明实施例不需要像现有技术那样:先去存储服务器的数据库中查找到所述终端标识的已推送次数,再判断该已推送次数是否超过预设的阈值,并实现对推送频率的控制。也就是说,应用本发明实施例,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
Description
技术领域
本发明涉及信息推送技术领域,特别是涉及一种信息推送系统、信息推送方法及电子设备。
背景技术
随着互联网技术的发展,越来越多的服务提供者会向用户推送信息,希望用户能使用他们提供的服务。然而为了防止向用户推送信息的次数过多,对用户造成过多打扰,就需要对用户每天收到推送信息的数量进行控制。因而,就需要信息推送服务端对信息推送的频率进行控制。
在实际应用中,终端的数目通常有几十亿个,如果针对每个终端标识都要记录该终端标识和对该终端的已推送次数,那么,需要较大的存储空间,因而,现有技术中,通常是将上述记录信息存储到多个存储服务器中。如图1所示,现有的信息推送系统通常包括:一个信息推送服务器101和多个存储服务器102。信息推送是由信息推送服务器101来完成的,并且,对信息推送频率的控制也是由信息推送服务器来完成的。
目前,信息推送系统通常采用如下步骤进行信息推送:
首先信息推送服务器接收信息提供方发送的推送请求;
然后,根据推送请求中的终端标识,针对每一终端在存储服务器中查看所述每一终端的已推送次数,并判断是否超过预设的阈值;
如果针对所述终端记录的已推送次数没有超过预设的阈值,则获得推送的数据,将所述推送数据推送给与所述终端;否则不推送数据。
最后,在信息推送后,信息推送服务器再去存储服务器中查找到该终端的已推送次数,然后修改所述已推送次数。
然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:通常推送请求中会包含大量的终端标识,为了实现对推送频率的控制,需要在信息推送之前,针对每一终端在存储服务器中查看所述每一终端的已推送次数,并判断是否超过预设的阈值;并且,在信息推送后再去存储服务器中查找到该终端的已推送次数,然后修改所述已推送次数。
整个过程中,为了实现对推送频率的控制,需要判断每一终端的已推送次数是否超过预设的阈值,因此需要与数据库进行多次交互以查询和更新每一终端的已推送次数,花费的时间较多,延时较高。
发明内容
本发明实施例的目的在于提供一种信息推送系统、信息推送方法及电子设备,以实现不需要与数据库的多次交互,就能够对推送频率进行控制。具体技术方案如下:
为了达到上述目的,第一方面,本发明实施例提供了一种信息推送系统,该系统包括:逻辑控制服务器、频率过滤服务器,以及推送服务器;其中,所述频率过滤服务器包括预设数量个第一布隆过滤器,所述第一布隆过滤器用于记录在预设的单位时间内,已推送过消息的终端的终端标识;第一布隆过滤器的数量与预设的在所述预设单位时间内对终端的推送次数阈值相同;
所述逻辑控制服务器,用于获取推送请求;判断所述推送请求中是否包含有终端标识和推送内容;若包含有终端标识和推送内容,则确定所述推送请求中的终端标识为第一终端标识,所述推送请求中的推送内容为第一推送内容,并根据预设的终端标识与频率过滤服务器的对应关系,将第一终端标识和第一推送内容,发送至第一终端标识对应的频率过滤服务器;
所述频率过滤服务器,用于接收所述逻辑控制服务器发送的第一终端标识和第一推送内容;检测在每一第一布隆过滤器中是否都记录有第一终端标识;如果否,则确定向第一终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述推送次数阈值的待推送终端为第一目标终端;将第一目标终端标识,记录至未记录过第一目标终端标识的一个第一布隆过滤器中,并向与所述频率过滤服务器通信连接的推送服务器发送第一推送指令;所述第一推送指令中包含第一目标终端标识和第一推送内容;第一目标终端标识为第一目标终端的终端标识;
所述推送服务器,用于接收所述第一推送指令;根据所述第一推送指令中的第一目标终端标识,向第一目标终端推送第一推送内容。
可选的,所述推送服务器,包括:预设数量个第二布隆过滤器,所述第二布隆过滤器,用于记录在预设单位时间内,已推送过消息的终端的终端标识;所述第二布隆过滤器的数量与预设的在所述预设单位时间内对终端的推送次数阈值相同;
所述逻辑控制服务器,还用于若所述推送请求中包含有推送内容,但没有终端标识,则确定所述推送请求中的推送内容为第二推送内容,并向所有与所述逻辑控制服务器通信连接的推送服务器,都发送第二推送指令;所述第二推送指令中包括第二推送内容;
所述推送服务器,还用于在接收到所述第二推送指令时,获取所有与所述推送服务器通信连接的待推送终端的终端标识,作为第二终端标识;针对每个第二终端标识,检测第二布隆过滤器中是否都已记录有该第二终端标识,如果否,则确定向该第二终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述预设推送次数阈值的待推送终端为第二目标终端;向第二目标终端推送第二推送内容,并将第二目标终端标识记录至未记录过该第二目标终端标识的一个第二布隆过滤器中,其中,所述第二目标终端标识为第二目标终端的终端标识。
可选的,所述推送服务器,还用于在所述检测第二布隆过滤器中是否都已记录有该第二终端标识之前,获取与自身通信连接的所有频率过滤服务器中包含的各个第一布隆过滤器中的第一记录信息;将所述第一记录信息合并至第二布隆过滤器中。
可选的,所述频率过滤服务器,还用于在所述检测在每一第一布隆过滤器中是否都记录有第一终端标识之前,获取与自身通信连接的所有推送服务器中包含的各个第二布隆过滤器中的第二记录信息;将所述第二记录信息合并至第一布隆过滤器中。
可选的,所述频率过滤服务器中的第一布隆过滤器,运行于所述频率过滤服务器的内存中;
所述推送服务器中的第二布隆过滤器,运行于所述推送服务器的内存中。
可选的,所述频率过滤服务器,还用于每当预设的单位时间结束时,将自身包含的预设数量个第一布隆过滤器中的第一记录信息清除;
所述推送服务器,还用于每当预设的单位时间结束时,将自身包含的预设数量个第二布隆过滤器中的第二记录信息清除。
第二方面,本发明实施例提供了一种信息推送系统,该系统,包括:逻辑控制服务器以及推送服务器;所述推送服务器包括预设数量个运行于内存中的第二布隆过滤器,所述第二布隆过滤器,用于记录在预设单位时间内,已推送过消息的终端的终端标识,所述第二布隆过滤器的数量与预设的在所述预设单位时间内对终端的推送次数阈值相同;
所述逻辑控制服务器,用于接收包括推送内容的推送请求;向所有与所述逻辑控制服务器通信连接的推送服务器,都发送所述推送内容;
所述推送服务器,用于在接收到所述推送内容时,获取所有与所述推送服务器通信连接的待推送终端的终端标识;若第二布隆过滤器中存在未记录有所获取的终端标识,则确定向所获取的终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述预设推送次数阈值的待推送终端为目标终端;向所述目标终端推送所述推送内容,并将目标终端的终端标识,记录至未记录过该终端标识的一个第二布隆过滤器中。
第三方面,本发明实施例提供了一种信息推送方法,该方法包括:
接收待推送终端的终端标识和推送内容;
利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值;
若未达到所述预设推送次数阈值,则确定所述待推送终端为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中;并向推送服务器发送推送指令,所述推送指令中包括所述目标终端的终端标识和推送内容。
第四方面,本发明实施例提供了一种信息推送方法,该方法包括:
判断所接收到的推送指令中是否包含有待推送终端的终端标识和推送内容;
若所述推送指令中包含有待推送终端的终端标识和推送内容,则根据所述推送指令中的终端标识,向所述终端标识对应的待推送终端发送所述推送内容;
若所述推送指令中包含推送内容,但没有终端标识,则获取所有终端的终端标识;针对每一终端,利用布隆过滤器算法,检测向该终端推送信息的次数是否达到预设推送次数阈值,若未达到所述预设推送次数阈值,则确定该终端为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中;并向所述目标终端发送所述推送内容。
第五方面,本发明实施例提供了一种信息推送方法,该方法包括:判断获取的推送请求中是否包含有待推送终端的终端标识和推送内容;
若所述推送请求中包含有终端标识和推送内容,则根据预设的终端标识与频率过滤服务器的对应关系,将所述终端标识和推送内容,发送至所述终端标识对应的频率过滤服务器;以使频率过滤服务器,利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值,将未达到所述预设推送次数阈值的待推送终端确定为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中,并向推送服务器发送推送指令,所述推送指令中包括所述目标终端的终端标识和推送内容;
若所述推送请求中包含推送内容,但没有终端标识,则直接向推送服务器发送包含所述推送内容的推送指令;以使推送服务器针对每一终端,利用布隆过滤器算法,检测向该待推送终端推送信息的次数是否达到预设推送次数阈值,将未达到所述预设推送次数阈值的终端确定为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中,并向目标终端发送所述推送内容。
第六方面,本发明实施例提供了一种信息推送装置,该装置包括:
接收模块,用于接收待推送终端的终端标识和推送内容;
检测模块,用于利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值;
记录模块,用于当所述待推送终端推送信息的次数未达到预设推送次数阈值时,确定所述待推送终端为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中;
推送模块,用于向推送服务器发送推送指令,所述推送指令中包括所述目标终端的终端标识和推送内容。
第七方面,本发明实施例提供了一种信息推送装置,该装置包括:
判断模块,用于判断所接收到的推送指令中是否包含有待推送终端的终端标识和推送内容;
推送模块,用于当所述推送指令中包含有待推送终端的终端标识和推送内容时,根据所述推送指令中的终端标识,向所述终端标识对应的待推送终端发送所述推送内容;
检测模块,用于当所述推送指令中包含推送内容,但没有终端标识时,获取所有终端的终端标识;针对每一终端,利用布隆过滤器算法,检测向该终端推送信息的次数是否达到预设推送次数阈值;
记录模块,用于当检测到向该终端推送信息的次数未达到预设推送次数阈值时,确定该终端为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中;并启动所述推送模块1302,向所述目标终端发送所述推送内容。
第八方面,本发明实施例提供了一种信息推送装置,该装置包括:
判断模块,用于判断获取的推送请求中是否包含有待推送终端的终端标识和推送内容;
发送模块,用于当所述推送请求中包含有终端标识和推送内容时,根据预设的终端标识与频率过滤服务器的对应关系,将所述终端标识和推送内容,发送至所述终端标识对应的频率过滤服务器;以使频率过滤服务器,利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值,将未达到所述预设推送次数阈值的待推送终端确定为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中,并向推送服务器发送推送指令,所述推送指令中包括所述目标终端的终端标识和推送内容;
所述发送模块,还用于当所述推送请求中包含推送内容,但没有终端标识时,直接向推送服务器发送包含所述推送内容的推送指令;以使推送服务器针对每一终端,利用布隆过滤器算法,检测向该待推送终端推送信息的次数是否达到预设推送次数阈值,将未达到所述预设推送次数阈值的终端确定为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中,并向目标终端发送所述推送内容。
第九方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一步骤。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的信息推送方法。
在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的信息推送方法。
本发明实施例提供的信息推送系统、信息推送方法及电子设备,针对推送请求中的第一终端标识,通过检测频率过滤服务器中的预设数量个第一布隆过滤器是否都记录了该第一终端标识,来判断该第一终端标识的已推送次数是否达到预设的推送次数阈值,来实现对推送频率的控制。可见,本发明实施例不需要像现有技术那样:先去存储服务器的数据库中查找到该终端标识的已推送次数,再判断该已推送次数是否超过预设的推送次数阈值,来实现对推送频率的控制。也就是说,应用本发明实施例,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为现有技术的一种信息推送系统的系统架构图;
图2为本发明实施例提供的信息推送系统的一种系统架构图;
图3为布隆过滤器记录终端标识的方法示意图;
图4为布隆过滤器判断终端标识是否已被记录的方法示意图;
图5为图2所示的信息推送系统内部协作的一种交互示意图;
图6为图2所示的信息推送系统内部协作的另一种交互示意图;
图7为本发明实施例提供的另一种信息推送系统的系统架构图;
图8为图7所示信息推送系统内部协作的一种交互示意图;
图9为本发明实施例提供的一种信息推送方法的流程示意图;
图10为本发明实施例提供的另一种信息推送方法的流程示意图;
图11为本发明实施例提供的再一种信息推送方法的流程示意图;
图12为本发明实施例提供的一种信息推送装置的结构示意图;
图13为本发明实施例提供的另一种信息推送装置的结构示意图;
图14为本发明实施例提供的再一种信息推送装置的结构示意图;
图15为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提供了一种信息推送系统、信息推送方法及电子设备,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
以下对本发明实施例提供的信息推送系统、信息推送方法及电子设备分别进行详细说明。
如图2所示,本发明实施例提供的一种信息推送系统,包括:逻辑控制服务器201、频率过滤服务器202,以及推送服务器203;其中,所述频率过滤服务器包括预设数量个第一布隆过滤器,所述第一布隆过滤器用于记录在预设的单位时间内,已推送过消息的终端的终端标识;第一布隆过滤器的数量与预设的在所述预设单位时间内对终端的推送次数阈值相同。
所述逻辑服务器201,用于获取推送请求;判断所述推送请求中是否包含有终端标识和推送内容;若包含有终端标识和推送内容,则确定所述推送请求中的终端标识为第一终端标识,所述推送请求中的推送内容为第一推送内容,并根据预设的终端标识与频率过滤服务器的对应关系,将第一终端标识和第一推送内容,发送至第一终端标识对应的频率过滤服务器。
具体的,逻辑控制服务器201可以从请求信息推送方获取所述推送请求。
所述频率过滤服务器,用于接收所述逻辑控制服务器发送的第一终端标识和第一推送内容;检测在每一第一布隆过滤器中是否都记录有第一终端标识;如果否,则确定向第一终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述推送次数阈值的待推送终端为第一目标终端;将第一目标终端标识,记录至未记录过第一目标终端标识的一个第一布隆过滤器中,并向与所述频率过滤服务器通信连接的推送服务器发送第一推送指令;所述第一推送指令中包含第一目标终端标识和第一推送内容;第一目标终端标识为第一目标终端的终端标识。
所述推送服务器203,用于接收所述第一推送指令;根据所述第一推送指令中的第一目标终端标识,向第一目标终端推送第一推送内容。
在实际应用中,本发明实施例所提供的信息推送系统,可以由多种形式,例如:
实施例一:
本发明实施例所提供的信息推送系统,包括:逻辑控制服务器、一个频率过滤服务器,以及一个推送服务器;其中,逻辑控制服务器、频率过滤服务器、推送服务器,三者之间均建立有通信连接关系。
由于在该实施例中,只有一个频率过滤服务器,因而,可以不需要终端与频率过滤服务器之间,建立固定的逻辑连接关系。
实施例二:
本发明实施例所提供的信息推送系统,包括:逻辑控制服务器、一个频率过滤服务器,以及多个推送服务器;其中,逻辑控制服务器、频率过滤服务器、多个推送服务器,任意两两之间均建立有通信连接关系。
在该实施例中,也只有一个频率过滤服务器,因而,也可以不需要终端与频率过滤服务器之间,建立固定的逻辑连接关系。
由于在该实施例中,有多个推送服务器,因而,频率过滤服务器是向与其通信连接的所有推送服务器都发送第一推送指令。比如,在该实施例中有三个推送服务器,那么,频率过滤服务器是向这三个推送服务器都发送第一推送指令。
同样,逻辑控制服务器也是向与其通信连接的所有推送服务器都发送第二推送指令。以上述例子为例,即逻辑控制服务器也是向三个推送服务器都发送第二推送指令。
实施例三:
本发明实施例所提供的信息推送系统,包括:逻辑控制服务器、多个频率过滤服务器,以及一个推送服务器;其中,逻辑控制服务器、多个频率过滤服务器、推送服务器,任意两两之间均建立有通信连接关系。
由于在该实施例中,有多个频率过滤服务器,因而,终端与频率过滤服务器之间,可以建立固定的逻辑连接关系,以便,逻辑控制服务器,根据预设的终端标识与频率过滤服务器的对应关系,将第一终端标识和第一推送内容,发送至第一终端标识对应的频率过滤服务器。
具体的,逻辑控制服务器,根据预设的终端标识与频率过滤服务器的对应关系,将第一终端标识和第一推送内容,发送至第一终端标识对应的频率过滤服务器步骤,可以为:
逻辑控制服务器,根据推送请求中包含的第一终端标识,确定与第一终端标识有固定连接关系的频率过滤服务器,为与第一终端标识对应的频率过滤服务器。
例如:逻辑控制服务器,根据推送请求中的第一终端标识id1、确定与id1有固定连接关系的频率过滤服务器,为与id1对应的频率过滤服务器。根据推送请求中的第一终端标识id2、确定与id2有固定连接关系的频率过滤服务器,为与id2对应的频率过滤服务器。再分别将id1、id2发送至与其对应的频率过滤服务器。
其中,固定连接关系是由逻辑控制服务器通过预设的算法,比如:哈希算法,将推送请求中的终端标识与任一频率过滤服务器间确定固定的连接关系且保存在其存储器中的。
这样,频率过滤服务器就可以固定的检测哪些与其有固定连接关系的终端标识的已推送次数。
实施例四:
本发明实施例所提供的信息推送系统,包括:逻辑控制服务器、多个频率过滤服务器,以及多个推送服务器;其中,逻辑控制服务器、多个频率过滤服务器、多个推送服务器,任意两两之间均建立有通信连接关系。
同样,由于在该实施例中,有多个频率过滤服务器,因而,终端与频率过滤服务器之间,可以建立固定的逻辑连接关系,以便,逻辑控制服务器,根据预设的终端标识与频率过滤服务器的对应关系,将第一终端标识和第一推送内容,发送至第一终端标识对应的频率过滤服务器。
并且,由于在该实施例中,有多个推送服务器,因而,频率过滤服务器是向与其通信连接的所有推送服务器都发送第一推送指令;同样,逻辑控制服务器也是向与其通信连接的所有推送服务器都发送第二推送指令。
以下对本发明实施例中用到的布隆过滤器做以简要介绍:
布隆过滤器是一种保存在内存中,用于表示一个集合,并判断一个元素是否在该集合中的过滤器。其中,一个布隆过滤器由一个长度为m的位数组array和k个随机映射函数组成。
参见图3,布隆过滤器记录终端标识的方法可以为:
布隆过滤器通过其包含的k个随机映射函数,将待记录的终端标识映射为K个值g1,g2,…,gK,并分别将位数组array中第g1,g2,…,gK个位置array[g1],array[g2],…,array[gK]的值置为1,用于记录该终端标识。
例如:假设布隆过滤器包含有3个随机映射函数f1、f2和f3,对于终端标识ID1,该布隆过滤器分别利用f1、f2和f3,将该终端标识ID1映射为三个值,假设这三个值分别为:1、2、5,那么该布隆过滤器将其包含的位数组array中的第1、2、5的位置array[1]、array[2]、array[5]的值置为1,用于记录该终端标识。
参见图4,布隆过滤器判断终端标识是否已被记录的方法可以为:
布隆过滤器通过其包含的k个随机映射函数,将待判断的终端标识映射为K个值g1,g2,…,gK,并分别判断位数组array中第g1,g2,…,gK个位置array[g1],array[g2],…,array[gK]的值是否为1,如果array[g1],array[g2],…,array[gK]的值均为1,则标识该布隆过滤器中记录有该终端标识,否则,该布隆过滤器中没有记录该终端标识。
例如:针对上述所列举的例子,要判断终端标识ID1是否在该布隆过滤器中,那么,该布隆过滤器分别利用f1、f2和f3,将该终端标识ID1映射为三个值1、2、5,此时,该布隆过滤器判断其包含的位数组array中的第1、2、5的位置array[1]、array[2]、array[5]中的值是否为1,如果是,则表示该布隆过滤器中记录了该终端标识ID1,否则,没有记录。
在实际应用中,终端的数目通常是非常大的,预估有20亿左右。由于布隆过滤器的误判率与要存入布隆过滤器中的元素、位数组array的长度和随机映射函数的个数有关,因此,在本发明实施例中,为了确保较低的误判率,可以将位数组的长度m设置为200亿,随机映射函数的个数K设置为10个,这样的话,一个布隆过滤器大约需要250M内存。
本发明实施例中,频率过滤服务器中包含的第一布隆过滤器的数量与预设的单位时间内对终端的推送次数阈值相等,通常预设的单位时间是1天,在该单位时间内,对终端的推送次数阈值通常设为1~10次,因而,通常一个频率过滤服务器中包含1~10个第一布隆过滤器,因此,总占用的内存空间可以为250M~250M*10。
由于现有技术,直接保存的是几十亿个终端的终端标识和针对各个终端标识的已推送次数,因而,需要较大的存储空间,所以需要多个分布式存储服务器来保存数据。而本发明实施例提供的方法,可以利用布隆过滤器只存储各个终端标识的映射,记录20亿左右的终端标识只需要占据内存中约250M的空间,因此,相较于现有技术节约了存储空间,并且布隆过滤器是在内存中完成对终端标识的记录的,因而,本发明实施例提供的方法在记录和查询对终端的已推送次数上花费的时间,相较于现有技术要少的多。
参见图5,图2所示的信息推送系统内部协作的交互过程为:
S501:逻辑控制服务器,将第一终端标识和第一推送内容发送至第一终端标识对应的频率过滤服务器;
本实施例中,在步骤S501之前,逻辑控制服务器可以是在获取到推送请求后,判断该推送请求中是否包含有终端标识和推送内容;若该推送请求中包含有终端标识和推送内容,则确定该推送请求中的终端标识为第一终端标识,该推送请求中的推送内容为第一推送内容,并将与第一终端标识有固定连接关系的频率过滤服务器,确定为与第一终端标识对应的频率过滤服务器。
S502:频率过滤服务器,接收所述逻辑控制服务器发送的第一终端标识和第一推送内容;检测在每一第一布隆过滤器中是否都记录有第一终端标识;如果否,则执行S503;
本实施例中,由于第一布隆过滤器的预设数量与预设的单位时间内对终端进行信息推送次数的阈值相同,因此如果第一终端标识在所述频率过滤服务器中包含的预设数量个第一布隆过滤器中都已记录,则说明对第一终端标识对应的终端的推送次数已经达到阈值,不对该第一终端标识对应的终端推送信息,即不执行步骤S503;
S503:频率过滤服务器,确定向第一终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述推送次数阈值的待推送终端为第一目标终端;将第一目标终端标识,记录至未记录过第一目标终端标识的一个第一布隆过滤器中,并向与所述频率过滤服务器通信连接的推送服务器发送第一推送指令;所述第一推送指令中包含第一目标终端标识和第一推送内容;第一目标终端标识为第一目标终端的终端标识;
S504:推送服务器,接收频率过滤服务器发送的第一推送指令;根据该第一推送指令中的第一目标终端标识,向第一目标终端推送第一推送内容。
针对推送请求中的第一终端标识,通过检测频率过滤服务器中的预设数量个第一布隆过滤器是否都记录了所述第一终端标识,来判断对所述第一终端标识的已推送次数是否超过预设的阈值,来实现对推送频率的控制。可见,本发明实施例不需要像现有技术那样:先去存储服务器的数据库中查找到所述终端标识的已推送次数,再判断该已推送次数是否超过预设的阈值,来实现对推送频率的控制。也就是说,应用本发明实施例,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
另外,由于本发明实施例不需要与数据库进行多次交互,因此提高了信息推送的时效性。同时,由于只需要在布隆过滤器中记录终端的标识信息,而不需要针对于各个终端标识,记录与各个终端标识相对应的已推送次数,因此,本发明实施例相较于现有技术也节约了存储空间。
现有技术中,信息推送服务器只能统计终端在推送请求中包含的终端标识的情况下的已推送次数,不能统计终端在推送请求中不包含终端标识的情况下的已推送次数。
针对这种情况,在本发明其他实施例中,逻辑控制服务器可以在获取到不包含终端标识仅包含推送内容的推送请求后,确定所述推送请求中的推送内容为第二推送内容,并向所有与该逻辑控制服务器通信连接的推送服务器,都发送第二推送指令;该第二推送指令中包括第二推送内容。
推送服务器,可以在接收到第二推送指令时,获取所有与该推送服务器通信连接的待推送终端的终端标识,作为第二终端标识;针对每个第二终端标识,检测第二布隆过滤器中是否都已记录有该第二终端标识,如果否,则确定向该第二终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述预设推送次数阈值的待推送终端为第二目标终端;向第二目标终端推送第二推送内容,并将第二目标终端标识记录至未记录过该第二目标终端标识的一个第二布隆过滤器中,其中,所述第二目标终端标识为第二目标终端的终端标识。
参见图6,本实施例中,在确定是否对终端进行信息推送时,既考虑了推送请求中包含终端标识的情况又考虑了推送请求中不包含终端标识的情况。如图6所示,图2所示信息推送系统内部协作的交互过程为:
S600:逻辑控制服务器,获取推送请求,判断该推送请求中是否包含有终端标识和推送内容;若该推送请求中包含有终端标识和推送内容,则执行步骤S601;若该推送请求中包含有推送内容,但没有终端标识,则执行步骤S608;
S601:逻辑控制服务器,确定所述推送请求中的终端标识为第一终端标识,所述推送请求中的推送内容为第一推送内容,根据预设的终端标识与频率过滤服务器的对应关系,将第一终端标识和第一推送内容,发送至第一终端标识对应的频率过滤服务器;
S602:频率过滤服务器在接收到逻辑控制服务器发送的第一终端标识和第一推送内容后,请求获取与自身通信连接的所有推送服务器中包含的所有第二布隆过滤器中的第二记录信息;
S603:推送服务器在接收到该请求后,将自身包含的所有第二布隆过滤器中的第二记录信息发送至频率过滤服务器;
具体的可以是:推送服务器在接收到请求后,分别获得自身包含的每一第二布隆过滤器中位数组的第二记录信息,将获得的第二记录信息可以按照获得次序顺序连接成一个大的二进制串;将该二进制串发送至频率过滤服务器。
S604:频率过滤服务器,在接收到第二记录信息后,将获取到的第二记录信息合并至自身包含的第一布隆过滤器中;
具体的可以是:频率过滤服务器在接收到由第二记录信息组成的大的二进制串后,将该二进制串分别与自身包含的每一第一布隆过滤器中位数组的记录信息进行“或”运算;从而实现将获取到的第二记录信息合并至自身包含的第一布隆过滤器中。
S605:频率过滤服务器,检测在每一第一布隆过滤器中是否都记录有第一终端标识;如果否,则执行步骤S606;
S606:频率过滤服务器,确定向第一终端标识对应的待推送终端推送信息的次数未达到预设推送次数阈值;确定未达到推送次数阈值的待推送终端为第一目标终端;将第一目标终端标识,记录至未记录过第一目标终端标识的一个第一布隆过滤器中,并向与其通信连接的推送服务器发送第一推送指令;
S607:推送服务器,接收频率过滤服务器发送的第一推送指令;根据所述第一推送指令中的第一目标终端标识,向第一目标终端推送第一推送内容;
S608:逻辑控制服务器,确定推送请求中的推送内容为第二推送内容,并向所有与该逻辑控制服务器通信连接的推送服务器,都发送第二推送指令;该第二推送指令中包括第二推送内容;
S609:推送服务器在接收到第二推送指令时,获取所有与所述推送服务器通信连接的待推送终端的终端标识,作为第二终端标识;并请求获取与该推送服务器自身通信连接的所有频率过滤服务器中包含的各个第一布隆过滤器中的第一记录信息;
S610:频率过滤服务器在接收到所述请求后,将自身所有第一布隆过滤器中的第一记录信息发送至推送服务器;
具体的,频率过滤服务器获得第一记录信息的方法,可以与上述推送服务器获得第二记录信息的方法相同,此处不再赘述。
S611:推送服务器,在接收到第一记录信息后,将获取到的第一记录信息合并至自身包含的第二布隆过滤器中;
具体的,推送服务器将获取到的第一记录信息合并至自身包含的第二布隆过滤器中的方法,可以与频率过滤服务器,在接收到第二记录信息后,将获取到的第二记录信息合并至自身包含的第一布隆过滤器中的方法相同,此处不再赘述。
S612:推送服务器,针对获取的每个第二终端标识,检测第二布隆过滤器中是否都已记录有该第二终端标识;如果否,则执行步骤S613;
S613:确定向该第二终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述预设推送次数阈值的待推送终端为第二目标终端;向第二目标终端推送第二推送内容,并将第二目标终端标识记录至未记录过该第二目标终端标识的一个第二布隆过滤器中,其中,所述第二目标终端标识为第二目标终端的终端标识。
可选的,本发明实施例提供的信息推送系统中频率过滤服务器中的第一布隆过滤器,可以运行于频率过滤服务器的内存中,推送服务器中的第二布隆过滤器,也可以运行于推送服务器内存中。
可选的,本发明实施例提供的信息推送系统中:
频率过滤服务器,还可以用于每当预设的单位时间结束时,将自身包含的预设数量个第一布隆过滤器中的第一记录信息清除。
推送服务器,还可以用于每当预设的单位时间结束时,将将自身包含的预设数量个第二布隆过滤器中的第二记录信息清除。
由图6所示的实施例可见,应用本发明实施例,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
本实施例中,频率过滤服务器中和推送服务器中都设置了预设数量个布隆过滤器,频率过滤服务器中的第一布隆过滤器用于在接收到包含终端标识和请求内容的推送请求后,针对该终端标识对应的终端判断已推送次数是否超过预设的阈值,在判断前,将自身第一布隆过滤器的第一记录信息与推送服务器发送的第二布隆过滤器的记录信息进行了合并;推送服务器中的第二布隆过滤器用于在接收到不包含终端标识仅包含请求内容的推送请求后,针对该推送服务器连接的各个终端判断已推送次数是否超过预设的阈值,在判断前,将自身第二布隆过滤器的第二记录信息与频率过滤服务器发送的第一布隆过滤器的第一记录信息进行了合并。
可见,本实施例在判断已推送次数是否超过预设的阈值时,不仅考虑了推送请求包含终端标识的情况,也考虑了推送请求不包含终端标识的情况,实现了更精确的推送频率控制。
参见图7,本发明实施例还提供了一种信息推送系统,该系统,包括:逻辑控制服务器701以及推送服务器702;所述推送服务器包括预设数量个运行于内存中的第二布隆过滤器,所述第二布隆过滤器,用于记录在预设单位时间内,已推送过消息的终端的终端标识,所述第二布隆过滤器的数量与预设的在所述预设单位时间内对终端的推送次数阈值相同;
所述逻辑控制服务器701,用于接收包括推送内容的推送请求;向所有与所述逻辑控制服务器通信连接的推送服务器,都发送所述推送内容。
所述推送服务器702,用于在接收到所述推送内容时,获取所有与所述推送服务器通信连接的待推送终端的终端标识;若第二布隆过滤器中存在未记录有所获取的终端标识,则确定向所获取的终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述预设推送次数阈值的待推送终端为目标终端;向所述目标终端推送所述推送内容,并将目标终端的终端标识,记录至未记录过该终端标识的一个第二布隆过滤器中。
参见图8,图7所示信息推送系统内部协作的交互过程为:
S800:逻辑控制服务器,获取推送请求;该推送请求只包含推送内容,不包含终端标识;
S801:逻辑控制服务器,确定推送请求中的推送内容为第二推送内容,并向所有与该逻辑控制服务器通信连接的推送服务器,都发送第二推送指令;该第二推送指令中包括第二推送内容;
S802:推送服务器在接收到第二推送指令时,请求获取所有与所述推送服务器通信连接的待推送终端的终端标识;
S803:接收待推送终端发送的终端标识,将获取到的终端标识,作为第二终端标识;
S804:推送服务器,针对获取的每个第二终端标识,检测自身包含的第二布隆过滤器中是否都已记录有该第二终端标识;如果否,则执行步骤S805;
S805:确定向该第二终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述预设推送次数阈值的待推送终端为第二目标终端;向第二目标终端推送第二推送内容,并将第二目标终端标识记录至未记录过该第二目标终端标识的一个第二布隆过滤器中,其中,所述第二目标终端标识为第二目标终端的终端标识。
可选的,所述推送服务器中的第二布隆过滤器,运行于所述推送服务器的内存中。
可选的,所述推送服务器,还用于每当预设的单位时间结束时,将自身包含的预设数量个第二布隆过滤器中的第二记录信息清除。
由图8所示的实施例可见,本发明实施例提供的信息推送系统,可以实现获取只包含推送内容,不包含终端标识的推送请求;确定该推送请求中的推送内容为第二推送内容,并向所有与该逻辑控制服务器通信连接的推送服务器,都发送第二推送指令;推送服务器在接收到第二推送指令时,获取所有与所述推送服务器通信连接的待推送终端的终端标识,作为第二终端标识;针对获取的每个第二终端标识,检测自身包含的第二布隆过滤器中是否都已记录有该第二终端标识;确定向该第二终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述预设推送次数阈值的待推送终端为第二目标终端;向第二目标终端推送第二推送内容,并将第二目标终端标识记录至未记录过该第二目标终端标识的一个第二布隆过滤器中。从而实现对不包含终端标识的推送请求,进行推送频率的控制。本发明实施例提供的信息推送系统,不需要像现有技术那样:先去存储服务器的数据库中查找到针对终端标识记录的已推送次数,再判断该已推送次数是否超过预设的推送次数阈值,来实现对推送频率的控制。也就是说,应用本发明实施例,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
另外,由于本发明实施例不需要与数据库进行多次交互,因此提高了信息推送的时效性。同时,由于只需要在布隆过滤器中记录终端的标识信息,而不需要针对于各个终端标识,记录与各个终端标识相对应的已推送次数,因此,本发明实施例相较于现有技术也节约了存储空间。
本发明实施例还提供了三种信息推送方法,以下分别进行详细说明。
参见图9,本发明实施例提供的一种信息推送方法的流程为:
S901:接收待推送终端的终端标识和推送内容;
S902:利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值;如果否,则执行S903;如果是,则执行S904;
具体的,利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值,的步骤可是为:
对于预设数量个布隆过滤器,针对每一布隆过滤器,分别检测接收到的终端标识是否已记录,如果检测到有一个布隆过滤器中未记录所述该终端标识时,停止检测,执行S903;如果检测到所有布隆过滤器中都已记录该终端标识,则执行S904。
S903:确定所述待推送终端为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中;并向推送服务器发送推送指令,所述推送指令中包括所述目标终端的终端标识和推送内容;
S904:不向所述推送服务器发送推送指令。
可选的,该方法,还可以包括:每当预设的单位时间结束时,将预设数量个布隆过滤器中的记录信息清除。
由图9所示的实施例可见,本发明实施例提供的信息推送方法不需要像现有技术那样:先去存储服务器的数据库中查找到针对终端标识记录的已推送次数,再判断该已推送次数是否超过预设的推送次数阈值,来实现对推送频率的控制。也就是说,应用本发明实施例,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
另外,由于本发明实施例不需要与数据库进行多次交互,因此提高了信息推送的时效性。同时,由于只需要在布隆过滤器中记录终端的标识信息,而不需要针对于各个终端标识,记录与各个终端标识相对应的已推送次数,因此,本发明实施例相较于现有技术也节约了存储空间。
参见图10,本发明实施例提供的另一种信息推送方法的流程为:
S1001:判断所接收到的推送指令中是否包含有待推送终端的终端标识和推送内容;如果所述推送指令中包含有终端标识和推送内容,则执行S1002;如果所述推送指令中包含推送内容,但没有终端标识,则执行S1003;
S1002:根据所述推送指令中的终端标识,向所述终端标识对应的待推送终端发送所述推送内容;
S1003:获取所有终端的终端标识;针对每一终端,利用布隆过滤器算法,检测向该终端推送信息的次数是否达到预设推送次数阈值,若未达到所述预设推送次数阈值,则确定该终端为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中;并向所述目标终端发送所述推送内容。
可选的,每当预设的单位时间结束时,可以将预设数量个布隆过滤器中的记录信息清除。
由图10所示的实施例可见,本发明实施例提供的信息推送方法不需要像现有技术那样:先去存储服务器的数据库中查找到针对终端标识记录的已推送次数,再判断该已推送次数是否超过预设的推送次数阈值,来实现对推送频率的控制。也就是说,应用本发明实施例,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
另外,由于本发明实施例不需要与数据库进行多次交互,因此提高了信息推送的时效性。同时,由于只需要在布隆过滤器中记录终端的标识信息,而不需要针对于各个终端标识,记录与各个终端标识相对应的已推送次数,因此,本发明实施例相较于现有技术也节约了存储空间。
参见图11,本发明实施例提供的再一种信息推送方法的流程为:
S1101:判断获取的推送请求中是否包含有待推送终端的终端标识和推送内容;若所述推送请求中包含有终端标识和推送内容,则执行步骤S1102;若所述推送请求中包含推送内容,但没有终端标识,则执行步骤S1103;
在步骤S1101之前,还可以包括:获取推送请求。
具体为从请求信息推送方获取推送请求。
S1102:根据预设的终端标识与频率过滤服务器的对应关系,将所述终端标识和推送内容,发送至所述终端标识对应的频率过滤服务器;以使频率过滤服务器,利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值,将未达到所述预设推送次数阈值的待推送终端确定为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中,并向推送服务器发送推送指令,所述推送指令中包括所述目标终端的终端标识和推送内容;
S1103:直接向推送服务器发送包含所述推送内容的推送指令;以使推送服务器针对每一终端,利用布隆过滤器算法,检测向该待推送终端推送信息的次数是否达到预设推送次数阈值,将未达到所述预设推送次数阈值的终端确定为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中,并向目标终端发送所述推送内容。
由图11所示的实施例可见,本发明实施例提供的信息推送方法不需要像现有技术那样:先去存储服务器的数据库中查找到针对终端标识记录的已推送次数,再判断该已推送次数是否超过预设的推送次数阈值,来实现对推送频率的控制。也就是说,应用本发明实施例,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
另外,由于本发明实施例不需要与数据库进行多次交互,因此提高了信息推送的时效性。同时,由于只需要在布隆过滤器中记录终端的标识信息,而不需要针对于各个终端标识,记录与各个终端标识相对应的已推送次数,因此,本发明实施例相较于现有技术也节约了存储空间。
与图9所示方法实施例对应的,本发明实施例还提供了一种信息推送装置。参见图12,该装置,包括:
接收模块1201,用于接收待推送终端的终端标识和推送内容;
检测模块1202,用于利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值;
记录模块1203,用于当所述待推送终端推送信息的次数未达到预设推送次数阈值时,确定所述待推送终端为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中;
推送模块1204,用于向推送服务器发送推送指令,所述推送指令中包括所述目标终端的终端标识和推送内容。
与图10所示方法实施例对应的,本发明实施例还提供了一种信息推送装置。参见图13,该装置,包括:
判断模块1301,用于判断所接收到的推送指令中是否包含有待推送终端的终端标识和推送内容;
推送模块1302,用于当所述推送指令中包含有待推送终端的终端标识和推送内容时,根据所述推送指令中的终端标识,向所述终端标识对应的待推送终端发送所述推送内容;
检测模块1303,用于当所述推送指令中包含推送内容,但没有终端标识时,获取所有终端的终端标识;针对每一终端,利用布隆过滤器算法,检测向该终端推送信息的次数是否达到预设推送次数阈值;
记录模块1304,用于当检测到向该终端推送信息的次数未达到预设推送次数阈值时,确定该终端为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中;并启动所述推送模块1302,向所述目标终端发送所述推送内容。
与图11所示方法实施例对应的,本发明实施例还提供了一种信息推送装置。参见图14,该装置,包括:
判断模块1401,用于判断获取的推送请求中是否包含有待推送终端的终端标识和推送内容;
发送模块1402,用于当所述推送请求中包含有终端标识和推送内容时,根据预设的终端标识与频率过滤服务器的对应关系,将所述终端标识和推送内容,发送至所述终端标识对应的频率过滤服务器;以使频率过滤服务器,利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值,将未达到所述预设推送次数阈值的待推送终端确定为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中,并向推送服务器发送推送指令,所述推送指令中包括所述目标终端的终端标识和推送内容;
所述发送模块1402,还用于当所述推送请求中包含推送内容,但没有终端标识时,直接向推送服务器发送包含所述推送内容的推送指令;以使推送服务器针对每一终端,利用布隆过滤器算法,检测向该待推送终端推送信息的次数是否达到预设推送次数阈值,将未达到所述预设推送次数阈值的终端确定为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中,并向目标终端发送所述推送内容。
本发明实施例所提供的装置,针对推送请求中的第一终端标识,可以通过检测频率过滤服务器中的预设数量个第一布隆过滤器是否都记录了该第一终端标识,来判断该第一终端标识的已推送次数是否达到预设的推送次数阈值,来实现对推送频率的控制。可见,本发明实施例不需要像现有技术那样:先去存储服务器的数据库中查找到该终端标识的已推送次数,再判断该已推送次数是否超过预设的推送次数阈值,来实现对推送频率的控制。也就是说,应用本发明实施例,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
本发明实施例还提供了一种电子设备,如图15所示,包括处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信,
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现上述实施例所述的任一方法步骤。
本发明实施例所提供的电子设备,针对推送请求中的第一终端标识,可以通过检测频率过滤服务器中的预设数量个第一布隆过滤器是否都记录了该第一终端标识,来判断该第一终端标识的已推送次数是否达到预设的推送次数阈值,来实现对推送频率的控制。可见,本发明实施例不需要像现有技术那样:先去存储服务器的数据库中查找到该终端标识的已推送次数,再判断该已推送次数是否超过预设的推送次数阈值,来实现对推送频率的控制。也就是说,应用本发明实施例,实现了不需要与数据库的多次交互,就能够对推送频率进行控制。
另外,由于本发明实施例不需要与数据库进行多次交互,因此提高了信息推送的时效性。同时,由于只需要在布隆过滤器中记录终端的标识信息,而不需要针对于各个终端标识,记录与各个终端标识相对应的已推送次数,因此,本发明实施例相较于现有技术也节约了存储空间。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的信息推送方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的信息推送方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (11)
1.一种信息推送系统,其特征在于,包括:逻辑控制服务器、频率过滤服务器,以及推送服务器;其中,所述频率过滤服务器包括预设数量个第一布隆过滤器,所述第一布隆过滤器用于记录在预设的单位时间内,已推送过消息的终端的终端标识;第一布隆过滤器的数量与预设的在所述预设单位时间内对终端的推送次数阈值相同;
所述逻辑控制服务器,用于获取推送请求;判断所述推送请求中是否包含有终端标识和推送内容;若包含有终端标识和推送内容,则确定所述推送请求中的终端标识为第一终端标识,所述推送请求中的推送内容为第一推送内容,并根据预设的终端标识与频率过滤服务器的对应关系,将第一终端标识和第一推送内容,发送至第一终端标识对应的频率过滤服务器;
所述频率过滤服务器,用于接收所述逻辑控制服务器发送的第一终端标识和第一推送内容;检测在每一第一布隆过滤器中是否都记录有第一终端标识;如果否,则确定向第一终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述推送次数阈值的待推送终端为第一目标终端;将第一目标终端标识,记录至未记录过第一目标终端标识的一个第一布隆过滤器中,并向与所述频率过滤服务器通信连接的推送服务器发送第一推送指令;所述第一推送指令中包含第一目标终端标识和第一推送内容;第一目标终端标识为第一目标终端的终端标识;
所述推送服务器,用于接收所述第一推送指令;根据所述第一推送指令中的第一目标终端标识,向第一目标终端推送第一推送内容。
2.根据权利要求1所述的系统,其特征在于,所述推送服务器,包括:预设数量个第二布隆过滤器,所述第二布隆过滤器,用于记录在预设单位时间内,已推送过消息的终端的终端标识;所述第二布隆过滤器的数量与预设的在所述预设单位时间内对终端的推送次数阈值相同;
所述逻辑控制服务器,还用于若所述推送请求中包含有推送内容,但没有终端标识,则确定所述推送请求中的推送内容为第二推送内容,并向所有与所述逻辑控制服务器通信连接的推送服务器,都发送第二推送指令;所述第二推送指令中包括第二推送内容;
所述推送服务器,还用于在接收到所述第二推送指令时,获取所有与所述推送服务器通信连接的待推送终端的终端标识,作为第二终端标识;针对每个第二终端标识,检测第二布隆过滤器中是否都已记录有该第二终端标识,如果否,则确定向该第二终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述预设推送次数阈值的待推送终端为第二目标终端;向第二目标终端推送第二推送内容,并将第二目标终端标识记录至未记录过该第二目标终端标识的一个第二布隆过滤器中,其中,所述第二目标终端标识为第二目标终端的终端标识。
3.根据权利要求2所述的系统,其特征在于,
所述推送服务器,还用于在所述检测第二布隆过滤器中是否都已记录有该第二终端标识之前,获取与自身通信连接的所有频率过滤服务器中包含的各个第一布隆过滤器中的第一记录信息;将所述第一记录信息合并至第二布隆过滤器中。
4.根据权利要求2或3所述的系统,其特征在于,
所述频率过滤服务器,还用于在所述检测在每一第一布隆过滤器中是否都记录有第一终端标识之前,获取与自身通信连接的所有推送服务器中包含的各个第二布隆过滤器中的第二记录信息;将所述第二记录信息合并至第一布隆过滤器中。
5.根据权利要求4所述的系统,其特征在于,
所述频率过滤服务器中的第一布隆过滤器,运行于所述频率过滤服务器的内存中;
所述推送服务器中的第二布隆过滤器,运行于所述推送服务器的内存中。
6.根据权利要求4所述的系统,其特征在于,
所述频率过滤服务器,还用于每当预设的单位时间结束时,将自身包含的预设数量个第一布隆过滤器中的第一记录信息清除;
所述推送服务器,还用于每当预设的单位时间结束时,将自身包含的预设数量个第二布隆过滤器中的第二记录信息清除。
7.一种信息推送系统,其特征在于,包括:逻辑控制服务器以及推送服务器;所述推送服务器包括预设数量个运行于内存中的第二布隆过滤器,所述第二布隆过滤器,用于记录在预设单位时间内,已推送过消息的终端的终端标识,所述第二布隆过滤器的数量与预设的在所述预设单位时间内对终端的推送次数阈值相同;
所述逻辑控制服务器,用于接收包括推送内容的推送请求;向所有与所述逻辑控制服务器通信连接的推送服务器,都发送所述推送内容;
所述推送服务器,用于在接收到所述推送内容时,获取所有与所述推送服务器通信连接的待推送终端的终端标识;若第二布隆过滤器中存在未记录有所获取的终端标识,则确定向所获取的终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值;确定未达到所述预设推送次数阈值的待推送终端为目标终端;向所述目标终端推送所述推送内容,并将目标终端的终端标识,记录至未记录过该终端标识的一个第二布隆过滤器中。
8.一种信息推送方法,其特征在于,应用于频率过滤服务器,该方法包括:
接收待推送终端的终端标识和推送内容;
利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值;
若未达到所述预设推送次数阈值,则确定所述待推送终端为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中;并向推送服务器发送推送指令,所述推送指令中包括所述目标终端的终端标识和推送内容;
其中,所述频率过滤服务器包括预设数量个第一布隆过滤器,所述第一布隆过滤器用于记录在预设的单位时间内,已推送过消息的终端的终端标识;第一布隆过滤器的数量与预设的在所述预设单位时间内对终端的推送次数阈值相同;
所述利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值,包括:检测在每一第一布隆过滤器中是否都记录有第一终端标识;如果否,则确定向第一终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值。
9.一种信息推送方法,其特征在于,应用于推送服务器,该方法包括:
判断所接收到的推送指令中是否包含有待推送终端的终端标识和推送内容;
若所述推送指令中包含有待推送终端的终端标识和推送内容,则根据所述推送指令中的终端标识,向所述终端标识对应的待推送终端发送所述推送内容;
若所述推送指令中包含推送内容,但没有终端标识,则获取所有终端的终端标识;针对每一终端,利用布隆过滤器算法,检测向该终端推送信息的次数是否达到预设推送次数阈值,若未达到所述预设推送次数阈值,则确定该终端为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中;并向所述目标终端发送所述推送内容;
其中,所述推送服务器包括预设数量个运行于内存中的第二布隆过滤器,所述第二布隆过滤器,用于记录在预设单位时间内,已推送过消息的终端的终端标识,所述第二布隆过滤器的数量与预设的在所述预设单位时间内对终端的推送次数阈值相同;
所述利用布隆过滤器算法,检测向该终端推送信息的次数是否达到预设推送次数阈值,包括:若第二布隆过滤器中存在未记录有所获取的终端标识,则确定向所获取的终端标识对应的待推送终端推送信息的次数未达到所述预设推送次数阈值。
10.一种信息推送方法,其特征在于,该方法包括:
判断获取的推送请求中是否包含有待推送终端的终端标识和推送内容;
若所述推送请求中包含有终端标识和推送内容,则根据预设的终端标识与频率过滤服务器的对应关系,将所述终端标识和推送内容,发送至所述终端标识对应的频率过滤服务器,以使频率过滤服务器,利用布隆过滤器算法,检测向所述待推送终端推送信息的次数是否达到预设推送次数阈值,将未达到所述预设推送次数阈值的待推送终端确定为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中,并向推送服务器发送推送指令,所述推送指令中包括所述目标终端的终端标识和推送内容;
若所述推送请求中包含推送内容,但没有终端标识,则直接向推送服务器发送包含所述推送内容的推送指令,以使推送服务器针对每一终端,利用布隆过滤器算法,检测向该待推送终端推送信息的次数是否达到预设推送次数阈值,将未达到所述预设推送次数阈值的终端确定为目标终端,将所述目标终端的终端标识,记录至未记录过该终端标识的一个布隆过滤器中,并向目标终端发送所述推送内容。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求8-10任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811613046.5A CN109743378B (zh) | 2018-12-27 | 2018-12-27 | 信息推送系统、信息推送方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811613046.5A CN109743378B (zh) | 2018-12-27 | 2018-12-27 | 信息推送系统、信息推送方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109743378A CN109743378A (zh) | 2019-05-10 |
CN109743378B true CN109743378B (zh) | 2021-08-13 |
Family
ID=66360200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811613046.5A Active CN109743378B (zh) | 2018-12-27 | 2018-12-27 | 信息推送系统、信息推送方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109743378B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413887B (zh) * | 2019-07-23 | 2022-03-25 | 杭州云梯科技有限公司 | 一种信息推送限频方法和系统 |
CN110516158A (zh) * | 2019-08-30 | 2019-11-29 | 湖南新云网科技有限公司 | 一种信息推送方法、装置及计算机可读存储介质 |
CN110781392B (zh) * | 2019-10-22 | 2022-08-12 | 深圳墨世科技有限公司 | 可动态伸缩的过滤方法、装置、计算机设备及存储介质 |
CN110838971B (zh) * | 2019-11-07 | 2022-07-22 | 北京奇艺世纪科技有限公司 | 消息发送方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977597B2 (en) * | 2008-05-21 | 2015-03-10 | Oracle International Corporation | Generating and applying redo records |
CN105472400A (zh) * | 2015-12-24 | 2016-04-06 | Tcl集团股份有限公司 | 一种消息推送方法及系统 |
CN106970930A (zh) * | 2016-10-10 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 消息发送确定方法及装置、数据表创建方法及装置 |
CN107451831A (zh) * | 2016-05-30 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 任务推送方法 |
CN107665225A (zh) * | 2016-07-29 | 2018-02-06 | 北京京东尚科信息技术有限公司 | 信息推送方法和装置 |
CN108572789A (zh) * | 2017-03-13 | 2018-09-25 | 阿里巴巴集团控股有限公司 | 磁盘存储方法和装置、消息推送方法和装置及电子设备 |
-
2018
- 2018-12-27 CN CN201811613046.5A patent/CN109743378B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977597B2 (en) * | 2008-05-21 | 2015-03-10 | Oracle International Corporation | Generating and applying redo records |
CN105472400A (zh) * | 2015-12-24 | 2016-04-06 | Tcl集团股份有限公司 | 一种消息推送方法及系统 |
CN107451831A (zh) * | 2016-05-30 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 任务推送方法 |
CN107665225A (zh) * | 2016-07-29 | 2018-02-06 | 北京京东尚科信息技术有限公司 | 信息推送方法和装置 |
CN106970930A (zh) * | 2016-10-10 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 消息发送确定方法及装置、数据表创建方法及装置 |
CN108572789A (zh) * | 2017-03-13 | 2018-09-25 | 阿里巴巴集团控股有限公司 | 磁盘存储方法和装置、消息推送方法和装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109743378A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109743378B (zh) | 信息推送系统、信息推送方法及电子设备 | |
CN104866510B (zh) | 残留文件的清除方法、装置及其特征库的建立方法、装置 | |
CN109542361B (zh) | 一种分布式存储系统文件读取方法、系统及相关装置 | |
CN111062013B (zh) | 一种账号过滤方法、装置、电子设备及机器可读存储介质 | |
CN108093026B (zh) | 多租户请求的处理方法及装置 | |
CN109450969B (zh) | 从第三方数据源服务器中获取数据的方法、装置和服务器 | |
CN108366012B (zh) | 一种社交关系建立方法、装置及电子设备 | |
CN109977261B (zh) | 一种数据请求的处理方法、装置及服务器 | |
CN104219230A (zh) | 识别恶意网站的方法及装置 | |
CN111782707A (zh) | 一种数据查询方法及系统 | |
CN109783462B (zh) | 一种基于分布式文件系统的数据访问方法和装置 | |
CN109446445B (zh) | 一种资源获取方法及装置 | |
KR101846778B1 (ko) | Id 확인 서비스 방법 및 이를 적용한 m2m 시스템 | |
CN104052720A (zh) | 信息验证方法及系统 | |
CN113572721B (zh) | 一种异常访问检测方法、装置、电子设备及存储介质 | |
CN110381081B (zh) | 网络访问方法、装置及电子设备 | |
CN110727895A (zh) | 一种敏感词发送方法、装置、电子设备及存储介质 | |
CN111078773A (zh) | 一种数据处理方法及装置 | |
CN113342275B (zh) | 区块链节点存取数据的方法、设备和计算机可读存储介质 | |
CN112035498A (zh) | 数据块调度方法、装置、调度层节点及存储层节点 | |
CN113392067A (zh) | 一种针对分布式数据库的数据处理方法、装置及系统 | |
CN113660277B (zh) | 一种基于复用埋点信息的反爬虫方法及处理终端 | |
CN111368616A (zh) | 从车的识别方法、装置及设备 | |
CN110381017A (zh) | 一种非法请求识别方法及装置 | |
CN112543213B (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 |